如何比较连个 字符数组是否相等?

german010 2011-06-27 05:03:08
比如:
a[10]={"he come from german"};
b[10]={"he comes from german"};
是否可以使用 strcmp()函数来比较 这两个字符数组是否相等?
...全文
194 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2011-06-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 german010 的回复:]

定义字符数组
a[10]={"he come from german"};
b[10]={"he comes from german"};后,它会自己加上一个 结束标志\0吗?
[/Quote]

如过你给的空间够 或不要指明尺寸

a[]={"he come from german"};
b[]={"he comes from german"};

设断点验证一下
赵4老师 2011-06-27
  • 打赏
  • 举报
回复
char a[10]="xxx";//引号里面的字符数不能超过9个
char *a[10]={"xxx"};//a[0]="xxx";a[1..9]未初始化
就想叫yoko 2011-06-27
  • 打赏
  • 举报
回复
1
a[10]={"he come from german"};
存放了不止10个字节大小的内容, 越界了
2
双引号的写法会在后面加上'\0' 所以可以使用strcmp
3
想要指定比较固定长度 使用 strncmp
slyname2008 2011-06-27
  • 打赏
  • 举报
回复
可以比较

if(!strncmp(a,b))
printf("a == b \n");
else
printf("a !=b \n");
ryfdizuo 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 german010 的回复:]
定义字符数组 
a[10]={"he come from german"};
b[10]={"he comes from german"};后,它会自己加上一个 结束标志\0吗?
[/Quote]
恩,但是"he come from german"长度远不只10啊。。。
ryfdizuo 2011-06-27
  • 打赏
  • 举报
回复
strncmp函数可以指定比较的个数。
german010 2011-06-27
  • 打赏
  • 举报
回复
定义字符数组 
a[10]={"he come from german"};
b[10]={"he comes from german"};后,它会自己加上一个 结束标志\0吗?
german010 2011-06-27
  • 打赏
  • 举报
回复
而且字符 数组定义中也 没有加 字符串结束 标志,
strcmp()怎么会知道该比较几个 字符呢?
只给了它 起始地址,
german010 2011-06-27
  • 打赏
  • 举报
回复
strcmp()比较是 比较 几个字符呢?也不能指定啊?
bdmh 2011-06-27
  • 打赏
  • 举报
回复
没问题
恨天低 2011-06-27
  • 打赏
  • 举报
回复
可以的啊!

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧