这是一个例子:
int main()
{
char string1[8];
char string2[7];
strcpy(string1, "Heloooo");
strcpy(string2, "Helloo");
printf("%d", strcmp(string1[2], string2[5]));
return(0);
}
不会返回任何内容,即使它应该返回 >0、0 或 <0。如果我删除索引,例如:
printf("%d", strcmp(string1, string2));
它会工作得很好。有人可以告诉我我在这里做错了什么吗?
最佳答案
strcmp
接受一对字符指针,而 string1[x]
不是指针,而是字符:
printf("%d", strcmp(&string1[2], &string2[5]));
或
printf("%d", strcmp(string1+2, string2+5));
请注意,虽然 string1
和 string2
是数组,但 C 编译器会将它们转换为字符指针,而无需额外的运算符。
关于C 编程,为什么我不能将 strcpy() 与索引一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47734337/