从小写到大写:致命错误

时间:2013-10-16 09:48:30

标签: c

我收到以下C程序的错误消息,假设将字符串中的一个单词更改为大写字母。

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;
}

2 个答案:

答案 0 :(得分:1)

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

链接编辑器正在寻找此功能的定义。它不在此文件中。你是从其他地方链接的吗?

如果是这种情况,则需要extern

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

答案 1 :(得分:1)

您的代码中没有strhlt()的定义,也不是库函数。

只有声明可用。

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

所以在链接器时间内,您收到此错误。