c语言中,如何判断两个char型的数组是否相同?
一般情况下,使用strcmp即可判断。但是下面这个例子貌似无法使用strcmp……现定义chara[10]和charb[10](二者均没有设初始值),经过几步运算后,a[...
一般情况下,使用strcmp即可判断。但是下面这个例子貌似无法使用strcmp……
现定义char a[10]和char b[10](二者均没有设初始值),经过几步运算后,a[0]和b[0]均变为了1,现在需要判断二者是否相等。其实本来应该是相等的,但如果利用strcmp,结果是不相等。因为从a[1]到a[9]和从b[1]到b[9]之间的内容由strcmp无法判断,故得到结论不相等……
出了strcmp之外,还有别的办法吗? 展开
现定义char a[10]和char b[10](二者均没有设初始值),经过几步运算后,a[0]和b[0]均变为了1,现在需要判断二者是否相等。其实本来应该是相等的,但如果利用strcmp,结果是不相等。因为从a[1]到a[9]和从b[1]到b[9]之间的内容由strcmp无法判断,故得到结论不相等……
出了strcmp之外,还有别的办法吗? 展开
6个回答
展开全部
使用'/0'啊,即先用长度函数(不好意思我不记得拼写了)判断两者长度,长度相同时,求出长度n,此处n=1。然后a[1]='/0',b[1]='/0'(意思即是a[n]=b[n]='/0'),然后计算时就会忽略后面的不定空间的数据了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用int i=strcmp(a,b)
i=0则相等
strcmp例子:
#include
#include
int main(void)
{
char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
int ptr;
ptr = strcmp(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1\n");
else
printf("buffer 2 is less than buffer 1\n");
ptr = strcmp(buf2, buf3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 3\n");
else
printf("buffer 2 is less than buffer 3\n");
return 0;
}
i=0则相等
strcmp例子:
#include
#include
int main(void)
{
char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
int ptr;
ptr = strcmp(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1\n");
else
printf("buffer 2 is less than buffer 1\n");
ptr = strcmp(buf2, buf3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 3\n");
else
printf("buffer 2 is less than buffer 3\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么用strcmp比较出来是不相等,难道你的a,b不是字符串,而是分别有10个字符把数组占满了,那样的话strcmp肯定不能用的,strcmp只能针对字符串.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组里不一定存放的是字符串,那可以自己写一个判断函数呀。就别用strcmp了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询