C语言使用strcmp()函数对两个汉字字符进行比较
最近写了个代码,发现关于使用strcmp()函数比较两个汉字字符串出现错误,现做以下改正:
源代码:
#include<stdio.h>
#include<string.h>
int main(){
char ch1[2],ch2[2];
ch1[2] = "我";
ch2[2] = "我";
printf("%d",strcmp(ch1,ch2));
return 0;
}
运行结果:
怎么会出错呢?按理说该输出0才对。我没有去读strcmp()函数的源码
自己尝试着做了个修改
通过我对字符初始化的方式可以知道,我的两个字符串都没有字符串结束标志
于是我试着加上一个字符串结束标志
ch1[3] = "我\0";
ch2[3] = "我\0";
或者让系统自动的给加上字符串结束标志
ch1[3] = "我";
ch2[3] = "我";
最后输出: