用C编程如何将输入的字符串输出到屏幕上?

时间:2015-09-15 05:33:26

标签: c string loops

我试图让我的程序将输入到我程序中的单词输出到屏幕上。到目前为止,我的程序根据我输入的内容输出随机字符。例如,如果我输入单词hey,它会在屏幕上输出%。如何解决这个问题,在屏幕上输出单词嘿?我的代码在下面。

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

int main(){
    int word;
    char cont;
    for (;;){
        int countword = 0;
        int countpunct = 0;
        printf("\nEnter the String: ");
        while ((word = getchar()) != EOF && word != '\n'){
            if (word == ' ' || word == '.' || word == '?' || word == '!' || word == '(' || word == ')' || word == '*' || word == '&'){
                countword++;
            }
            if (word == '.' || word == '?' || word == '!' || word == '(' || word == ')' || word == '*' || word == '&'){
                countpunct++;
            }
        }

        printf("%c", word);

        printf("\nThe number of words is %d.", countword);

        printf("\nThe number of punctuation marks is %d.", countpunct);

        printf("\nContinue? Y/N?");
        scanf("%c", &cont);
        if (cont != 'y' && cont != 'Y'){
            return 0;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您正在&使用printf()。它将打印变量的地址(而不是其值)!

请改为:

printf("%c", word); // notice there is no &

除此之外,我注意到你的代码中有一些值得一提的东西:

word被声明为int,但会被读取并打印为char。为什么呢?

答案 1 :(得分:1)

while循环可确保word在退出EOF循环时保持\nwhile

while ((word = getchar()) != EOF && word != '\n')