读书人

二维数组跟一维数组(字符串)strcmp的

发布时间: 2013-12-15 22:17:19 作者: rapoo

二维数组和一维数组(字符串)strcmp的使用?
以前一般都是用strcmp进行一维数组的比较,刚刚用它进行一维和二维的比较就出了错,求前辈指教!!


#include<stdio.h>
#include<string.h>
int main()
{
char name[10][20]={0};
char *p;
char name1[20];
int i;
p=name1;
strcpy(name[5],"大中国");

strcpy(name1,"大中国");
printf("%s\n",p);
for(i=0;i<10;i++)
{
if(strcmp(name1,name[i])==0)
{
printf("zhaodaole\n");
break;
}
else
{
i++;
}
}
printf("i=%d\n",i);
return(0);
}

上面这个程序当执行“if(strcmp(name1,name[i])==0)”当i=5时,应该会跳出来吧?可是事实不是这样的。
求高手指教啊!!
谢谢!!
[解决办法]
多了一次i++,跳过了i=5的情况:

#include<stdio.h>
#include<string.h>
int main()
{
char name[10][20]={0};
char *p;
char name1[20];
int i;
p=name1;
strcpy(name[5],"大中国");

strcpy(name1,"大中国");
printf("%s\n",p);
for(i=0;i<10;i++)
{
if(strcmp(name1,name[i])==0)
{
printf("zhaodaole\n");
break;
}
}
printf("i=%d\n",i);
return(0);
}


引用:
以前一般都是用strcmp进行一维数组的比较,刚刚用它进行一维和二维的比较就出了错,求前辈指教!!

#include<stdio.h>
#include<string.h>
int main()
{
char name[10][20]={0};
char *p;
char name1[20];
int i;
p=name1;
strcpy(name[5],"大中国");

strcpy(name1,"大中国");
printf("%s\n",p);
for(i=0;i<10;i++)
{
if(strcmp(name1,name[i])==0)
{
printf("zhaodaole\n");
break;
}
else
{
i++;
}
}
printf("i=%d\n",i);
return(0);
}

上面这个程序当执行“if(strcmp(name1,name[i])==0)”当i=5时,应该会跳出来吧?可是事实不是这样的。
求高手指教啊!!
谢谢!!

读书人网 >C语言

热点推荐