我正在为我的初学者编码类编写代码,我们在其中创建自己的strlen
,strcat
,strcmp
和strcpy
函数。我已经创建了strlen
函数,并试图在我的代码中使用它。我有一个用户输入一个字符串并将其存储在字符串中,然后将该字符串发送到以指针为参数的函数,然后该函数返回字符串的长度。我在编译代码时遇到的问题是以下消息:
warning: conflicting types for built-in function ‘strlen’
int strlen (char *pstr);
我没有很多经验,除了弄乱了东西以外,我不太理解编译器消息试图告诉我什么。有人可以向我解释问题以及如何解决该问题吗?
这是我的函数原型:
int strlen (char *pstr);
以下是函数本身:
int strlen (char *pstr)
{
int counter;
for ( ; pstr != '\0'; pstr++)
{
counter++;
}
return counter;
}
这是我的代码中对函数的调用:
char string1[SIZE], string2[SIZE];
int len1, len2;
len1 = strlen (string1);
len2 = strlen (string2);
printf("The length of string 1 is: %d", len1);
printf("The length of string 2 is: %d", len2);
答案 0 :(得分:0)
该消息表明已经有一个具有该名称的函数,并且以不同的方式声明了它(当然是标准strlen
)。
您需要使用其他名称,或者根本不包括标准(从代码中删除潜在的#include ...
行。
此外,您的函数中还有两个错误:
'\0'
的指针,而是指向它的指针:for ( ; *pstr != '\0'; pstr++)
int counter=0;