“空格键”后终止扫描字符的问题

时间:2013-04-02 14:20:31

标签: 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;
    }

1 个答案:

答案 0 :(得分:3)

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

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