scanf转换为字符串并与之配合使用

时间:2018-10-22 18:00:52

标签: string if-statement printf scanf

我对C语言编程还是很陌生,因此我花了很多时间寻找解决方案,但找不到解决方案。 我正试图要求用户输入字母c或f并根据选择的字母进行正确的打印。

#include <stdio.h>
#include <conio.h>

void startScreen();
char choice[1];

int main()
{
    startScreen;
    _getch();
    return 0;
}

void startScreen()
{

    printf("Please choose c or f\n");
    scanf("%s", choice);
    if (choice[0] == 'f' || choice[0] == 'F')
        printf("Good choice");
    if (choice[0] == 'c' || choice[0] == 'C')
        printf("Good luck");
}

感谢我能获得的所有帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

谢谢Chad Estes和Ahmed Aboumalek,我结合了你们俩的观点,它奏效了!

#include <stdio.h>
#include <conio.h>

void startScreen();

int main()
{
    startScreen();
    _getch();
    return 0;
}

void startScreen()
{
    char c;

    do 
    {
        scanf_s("%c", &c);
        switch (c) 
        {
        case 'f':
        case 'F':
            printf("Good choice");
            break;
        case 'c':
        case 'C':
            printf("Good luck!");
            break;
        default:
            printf("Invalid input. Try again.");
            break;
        }
    } 
    while (c != 'c' && c != 'C' && c != 'f' && c != 'F');
}

答案 1 :(得分:-1)

我的C很生锈,但是我想您遇到的问题是调用此命令并输入“ C”或“ F”以外的内容时。看来您需要像这样更改startScreen()函数:

void startScreen()
{
    printf("Please choose c or f\n");
    do {
      scanf("%s", choice);
      switch(choice[0]) {
         case 'f':
         case 'F':
           printf("Good choice");
           break;
         case 'c':
         case 'C':
           printf("Good luck");
           break;
         default:
           printf("Invalid input. Try again.");
       }
    } while (choice[0] != 'c' && choice[0] != 'C' && choice[0] != 'f' && choice[0] != 'F');
}