#include<stdio.h>
int main(){
char name[20];
scanf(" %s", name);
if (name == 'James'){
printf("Welcome James");
}else{
printf("You are not James");
}
}
希望你有我的想法。我知道这不起作用。但有没有办法做这样的事情?
答案 0 :(得分:2)
使用
if (strcmp(name, "James") == 0)
而不是
if (name == 'James')
strcmp的手册页:
返回值
strcmp()
和strncmp()
函数返回小于的整数, 如果s1(或其前n个字节)是等于或大于零 发现分别小于,匹配或大于s2。
答案 1 :(得分:1)
尝试:strcmp()
#include<stdio.h>
int main(){
char name[20];
scanf(" %s", name);
if (strcmp(name,"James")){
printf("Welcome James");
}else{
printf("You are not James");
}
}
答案 2 :(得分:0)
在C中你必须使用cmp字符串函数:
strcmp(const char* s1, const char* s2);
返回函数值:
return value == 0 - s1 is equals s2
return value > 0 - s1 is longer than s2
return value < 0- s1 is smaller than s2
如果你写的话,这是非常的:
char name_buff[20];
if (name_buff == "James")
{
...
这并不意味着字符串的比较,而是存储器中地址的比较。 所以你必须使用strcmp()。