c - "space bar"之后扫描字符终止的问题

标签 c string console

当我输入一个单词时,我按空格键,然后我不知道为什么,但我需要再输入一个单词或一个字母才能停止扫描。

    #include <stdio.h >
        char string1[20];
    char a='a', b='b', g='g', d='d', e='e', v='v', o='o';

    int i;
    int sum;

    printf (" my word is:\n");
    scanf( "%19s ", string1);
 sum=0;
       for (i = 0; string1[i] !='\0'; i++)
    {
    if (string1[i]==a ) {sum=  +1;} else
    if (string1[i]==b ) {sum=  +2;} else
    if (string1[i]==g ) {sum=  +3;} else
    if (string1[i]==d ) {sum=  +4;} else
    if (string1[i]==e ) {sum=  +5;} else
    if (string1[i]==v ) {sum=  +6;} else
    if (string1[i]==o ) {sum=  +50;} else
    {sum=0;} }
    printf ("%d\n" , sum);
    return 0;
    }

最佳答案

scanf( "%s\n ", string1);

您要求 scanf 继续扫描,直到您在单词后输入空格以外的内容。要仅读取一个单词,请单独使用 %s

关于c - "space bar"之后扫描字符终止的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15766558/

相关文章:

c++ - 我想知道系统调用()被中断时到达的是哪个信号

MySQL - 从字符串中返回两个不同字符中最左边的字符

windows - 如何在 GUI 中显示 Perl 控制台输出?

javascript - 浅紫色在 Chrome 的控制台中意味着什么?

c - 在 C 中获取日期时间

c - C中Enqueue操作中的无限循环

string - 大小为 n 的最大重复子串

c# - 使用开始和结束标记分割字符串

C++ 动态定义函数

c - 从C语言文件中读取文本