发布网友 发布时间:2023-12-31 20:03
共5个回答
热心网友 时间:2024-07-13 23:19
可以改成这样:
char n[3] = { 0 };
char m[] = "是";
scanf("%s", n);
strcmp的 两个参数必须 明确有一个'\0'标志串结束;
所以m的定义时,长度不能是2。这样“是”后不一定是'\0',所以要像我这样定义。
n的定义时,要足够的长,且要初始化为0。这样保存你输入的字符后,后面一定是‘\0’
追答不加。n就是表示地址。不用加
热心网友 时间:2024-07-13 23:19
char类型支持单字符型,汉字不是一个单字符型,你定义的时候这样写:char *s,*w;或者char s[100],w[100]追问那输入的时候是%c还是%s?
热心网友 时间:2024-07-13 23:20
首先你用汉字就应该用字符数组char[],并且字符数组是不能用等号来判断是否相等的,你得调用string库里面的函数strcmp,scanf里面就是%s,但是你要写成scanf("%s",n)追问修改完,如图。无论输入什么都是输出2。追答你把数组改成4就行了,汉字所占字节不同
热心网友 时间:2024-07-13 23:21
if(n == m) 改为 if(strcmp(n,m)==0)热心网友 时间:2024-07-13 23:21
第六行 getchar()