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之外,还有别的办法吗?
展开
 我来答
silvernii
2009-09-30 · TA获得超过3638个赞
知道大有可为答主
回答量:1667
采纳率:0%
帮助的人:1631万
展开全部
因为没有初始化,所以即使a[0]和b[0]相等,也不能说数组a和b就相等

把a和b都初始化为同一个数,然后计算以后,用strcmp
或者你真的仅仅要比较a[0]和b[0]就可以判断是否相等的话,那么直接比较下if(a[0]==b[0])

严格来说,使用任何未初始化的局部变量都是很傻的做法
howceebd
2009-09-30 · TA获得超过1026个赞
知道答主
回答量:111
采纳率:0%
帮助的人:170万
展开全部
使用'/0'啊,即先用长度函数(不好意思我不记得拼写了)判断两者长度,长度相同时,求出长度n,此处n=1。然后a[1]='/0',b[1]='/0'(意思即是a[n]=b[n]='/0'),然后计算时就会忽略后面的不定空间的数据了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mare007
2009-09-30 · TA获得超过193个赞
知道答主
回答量:82
采纳率:0%
帮助的人:71.9万
展开全部
用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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘至白葬不情必0T
2009-09-30 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
为什么用strcmp比较出来是不相等,难道你的a,b不是字符串,而是分别有10个字符把数组占满了,那样的话strcmp肯定不能用的,strcmp只能针对字符串.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cknight123
2009-09-30 · TA获得超过964个赞
知道小有建树答主
回答量:532
采纳率:0%
帮助的人:594万
展开全部
数组里不一定存放的是字符串,那可以自己写一个判断函数呀。就别用strcmp了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式