c - C语言打印字符的程序

标签 c string char printf getchar

我创建了一个程序,要求用户输入一些文本。然后,程序在新行上输出每个字符,并说明该字母是元音还是标点符号。

我遇到的问题是,当我运行程序时 - 当它输出元音或标点符号的字母时,它会将它们打印出来两次。有人可以帮忙吗?将不胜感激。

代码:

int _tmain(int argc, _TCHAR* argv[])
{
    char string[200];
    char n1;

    printf("Enter some text: \n");

    while ((n1 = getchar()) != '\n') {

        if (n1 == 'a' || n1 == 'e' || n1 == 'i' || n1 == 'o' || n1 == 'u')
            printf("\b%c is a lowercase Vowel\n", n1);

        else if (n1 == 'A' || n1 == 'E' || n1 == 'I' || n1 == 'O' || n1 == 'U')
            printf("\b%c is a uppercase Vowel\n", n1);

        if (ispunct(n1))
            printf("%c is punctuation\n", n1);
        printf("%c\n", n1);
    }
    return 0;
}

最佳答案

这个:

   if (ispunct(n1))
        printf("%c is punctuation\n", n1);
        printf("%c\n", n1);

应该是:

   else if (ispunct(n1))
        printf("%c is punctuation\n", n1);
   else
        printf("%c\n", n1);

关于c - C语言打印字符的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33311428/

相关文章:

c - 如何在库中组织头文件

c - 在 float 的右侧添加零

java - 为什么在java中char数据类型的零和空被视为相同

C++。将符号行读入字符数组/vector 的最快方法

c - 使用主体中的输入,以便用户可以编辑

c - 在 C 中使用 fork() 和 TCP 连接进行设计

string - 如何将子功能应用于数据框?

python - 用空格和括号分割字符串

php - javascript子串提取

c++ - 字符串转换为 const char * 问题