当我运行以下代码时,出现错误
problem1.c:136:6: error: conflicting types for 'strcspn'
int strcspn( char * str, char * reject )
我不确定为什么会收到冲突类型错误。 这是代码:
int strcspn( char * str, char * reject )
{
int counter = 0;
for (int i = 0; i < strlen(str); i ++)
{ for (int j = 0; j < strlen(reject); j++)
if ( *(str + i) == *(reject + j) )
return counter;
counter++;
}
return counter;
}
void main ()
{
char * str1 = (char *)malloc(sizeof(char)*100);
char * str2 = (char *)malloc(sizeof(char)*100);
sprintf(str1, "abc123");
sprintf(str2, "d2");
printf("%d\n", strcspn(str1, str2));
}
最佳答案
strcspn
声明于 <strings.h>
。看起来您以某种方式包含了该 header ,然后尝试重新定义 strcspn
与头文件定义不同。在我的<strings.h>
它被定义为
size_t strcspn(const char *s, const char *reject);
关于冲突类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33572503/