C语言中如何判断字符串数组与规定的数组相同

/*
读取并显示字符串数组
*/

#include <stdio.h>

int main(void)
{
int i;
char s[3][128];

for (i = 0; i < 3; i++) {
printf("s[%d] : ", i);
scanf("%s", s[i]); //比如在这里,如果输入的是$$$,就跳出循环
}

for (i = 0; i < 3; i++)
printf("s[%d] = \"%s\"\n", i, s[i]);

return 0;
}

用strcmp函数就可以

如果返回0就是相同。 

#include <stdio.h>
#include <string.h>//增加字符串头文件。 
int main(void)
{
int i;
char s[3][128];

for (i = 0; i < 3; i++) {
printf("s[%d] : ", i);
scanf("%s", s[i]); //比如在这里,如果输入的是$$$,就跳出循环
if(strcmp(s[i],"$$$")==0) break;


for (i = 0; i < 3; i++)
printf("s[%d] = \"%s\"\n", i, s[i]);

return 0;
}追问

如果不用strcmp,还有其他的方法吗 或者说为什么if(s[i]=="$$$")break 这是没有用

追答

对于简单的 比如这个 可以逐个判断

if(s[0] == '$' && s[1] == '$' && s[2] == '$' && s[3] == '\0')追问

这样写的话,好像没有作用,而且程序警告
对于这一行 if(s[i] == '$$$')break;
Warning] comparison between pointer and integer
[Warning] comparison between pointer and integer
有这些报警

追答if(s[i][0] == '$' && s[i][1] == '$' && s[i][2] == '$' && s[i][3] == '\0')

这样的

你的是二维数组。

温馨提示:答案为网友推荐,仅供参考
相似回答