我试图用C语言编程,但并不成功.我有一个简单的源代码,我需要匹配多个字母if (char).它显示以下错误消息(在使用gcc的linux终端中):
main.c:在函数`main'中:main.c:16:23:警告:字符常量对于其类型太长[默认启用]
if(firstName [20] =='Vojta'){
源代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{
/* code */
char firstName[20];
char lastName[40];
char password[20];
char confpasswd[20];
int age;
printf("Please write your first and last name:");
scanf("%s%s", firstName, lastName);
printf("%s %s:\n", firstName, lastName);
if (firstName[20] == 'Vojta'){
printf("\ncool\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Sou*_*osh 10
第1点
使用strcmp()比较字符串.
第2点
更改
scanf("%s%s", firstName, lastName);
Run Code Online (Sandbox Code Playgroud)
至
scanf("%19s %39s", firstName, lastName);
Run Code Online (Sandbox Code Playgroud)
和做检查的返回值scanf(),以确保sucess.但是,如果你scanf()单独使用两个输入两个输入会更好,这样会更容易出错.
此外,作为一个建议,你可以阅读fgets()和strtok()一个如何做阅读一整行作为输入和令牌化需要的部分.