我想创建一个有趣的节目,以便向我的一位朋友展示。不要吝啬,我是初学者,有一点问题。问题是我希望程序扫描一个单词,如果一个单词是我的朋友名字“Bob”,那么它打印“noob”,否则它打印“pro”。
这就是我的所作所为,但有些东西似乎不起作用。它指出等号==有问题。帮忙,伙计们。这是我的编码。
#include <stdio.h>
int main()
{
char x;
printf("Enter the noob's name: ");
scanf(" %c", &x);
if (x == "Bob")
printf("noob\n");
else
printf("pro\n");
return 0;
}
答案 0 :(得分:3)
试试这样:
#include <stdio.h>
#include <string.h>
int main()
{
char x[30];
printf("Enter the noob's name: ");
scanf(" %s",x);
if (strcmp(x,"Bob")==0)
printf("noob\n");
else
printf("pro\n");
return 0;
}
答案 1 :(得分:2)
您的代码中存在一些错误:
首先,char x;
声明一个只能容纳一个字符的变量x
。因此,您可能希望声明一个更大的字符数组。
char x[100]; //choose a size
其次,C中不允许与==
进行字符串比较。您应该这样做:
if(strcmp(x, "Bob") == 0)
要使用strcmp
,您需要#include <string.h>
我还建议使用fgets
来读取C字符串而不是scanf
。
答案 2 :(得分:1)
答案 3 :(得分:0)
由于这不是作业,您可能想要尝试使用C ++。 例如,下面的代码可能不那么令人生畏(或不是):
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cout << "Please enter your name." << endl;
cin >> name;
if (name=="bob") {
cout << "Hello noob" << endl;
} else {
cout << "Hello " << name << endl;
}
return 0;
}
答案 4 :(得分:0)
首先,您需要在char x
之后放置[256],以便指定字符串的大小。其次,scanf函数scanf(" %c", &x);
更改为scanf("%s,x);
,因为%s用于读取然后把if (strcmp(x,"Bob")==0)
代替if (x == "Bob")
,因为这不是检查用户输入的正确方法。同样的事情发生在我身上,继承人if statement not working ends program immediately。