如果条件失灵,则在里面进行字符串

Voj*_*nek 3 c string gcc

我试图用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()一个如何做阅读一整行作为输入和令牌化需要的部分.