0

次の C プログラムでは、文字列内の 1 つの単語を大文字に変更すると、このエラー メッセージが表示されます。

1>verkefni06.obj : error LNK2019: unresolved external symbol _strhlt referenced in function _main
1>c:\kit\skilaverk06\Debug\skilaverk06.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

これは私がこれまでに得たコードです。コードが機能するように助けていただければ幸いです。

#include <stdio.h>
#include <string.h>
#include <ctype.h>
pragma warning(disable : 4996)
pragma warning(disable : 4550)
/* strindex:  return index of t in s, -1 if none */



/* getline: get line into s, return length */

int getline (char s[], int lim)
{
   int c, i;

   i = 0;
    while (--lim > 0 && (c=getchar()) != EOF && c != '\n')
      s[i++] = c;
   s[i] = '\0';
   return i;
}

 /* strindex: return index of t in s , -1 if none */
int strindex (char s[], char t[])
{
   int i, j, k;

   for (i=0; s[i] != '\0'; i++){
      for (j=i, k=0; t[k] != '\0' && s [j]==t[k]; j++, k++)
         ;
      if (k > 0 && t[k] == '\0')
         return i;
    }
   return -1;
}


 int strhlt(char sz[], char szHigh[]); 

main()
{ 

   char sz [60];

   strcpy;

   getline (sz,60);
   getline (sz, 60);

   strhlt (sz,"write" ); 
   getline ("%s",60);


   printf("skrifadu stutta setningu (mest 60 stafabil): ");
   printf("\n\nRitadu ordid sem breytist i hastafi (mest 10 stafi): %s", sz);

   getchar();
   return 0;
}
4

2 に答える 2

1
int strhlt(char sz[], char szHigh[]); 

リンケージ・エディターは、この関数の定義を探しています。このファイルにはありません。別の場所からリンクしていますか??

その場合は、extern

extern int strhlt(char sz[], char szHigh[]); 
于 2013-10-16T09:51:50.740 に答える
1

strhlt()コードにの定義はなく、ライブラリ関数でもありません。

宣言のみ可能です。

int strhlt(char sz[], char szHigh[]);

そのため、リンカー時にこのエラーが発生します。

于 2013-10-16T10:12:18.597 に答える