gpt4 book ai didi

c - 在考虑使用 switch 和 while 循环来添加句子和其中的字符时陷入困境

转载 作者:行者123 更新时间:2023-11-30 19:28:03 25 4
gpt4 key购买 nike

我正在尝试编写一个程序来输入一个句子并计算各种字符的计数。例如,

输入:

输入以“.”结尾的句子或者 '!'或“?”:这*是A
样本
一句话!

输出:

总字符数:28
元音数量:8
换行数:3
标签数量:1
车位数量:2
其他字符数:14

到目前为止我已经:

#include<stdio.h>
#include<ctype.h>

int main()
{
char c;
int i;
printf("Enter a sentence (ended by a '.' or '!' or '?'):\n");
scanf("%c", &c);

while (c !='.' && c !='?' && c !='!')

switch(c)
{
case 'a': i++;

case 'e': i++;

case 'i': i++;

case 'o': i++;

case 'u': i++;
}
return 0;
}

简而言之,我需要编写一个程序,逐个字符地读取句子,并计算字符总数、元音、换行符、制表符、空格和所有其他字符的数量。用户输入的句子将结束带有句号、问号或感叹号。该程序不会计算句号、感叹号、或问号作为字符。 有人可以帮我吗?//更新:我需要使用 while 循环和 switch 来编写它。我确信事情会级联,但这是要求。

最佳答案

你可以这样做

#include <stdio.h>

int main()
{
char c;
int end = 0;
int vowels = 0;
int newlines = 1;
int tabs = 0;
int spaces = 0;
int others = 0;
int total = 0;

printf("Enter a sentence (ended by a '.' or '!' or '?'):\n");

while(!end) {
scanf("%c", &c);
switch(c) {
case '.':
case '?':
case '!':
end = 1;
break;
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
vowels++;
break;
case '\n':
newlines++;
break;
case '\t':
tabs++;
break;
case ' ':
spaces++;
break;
default:
switch(c) {
case 'a' ... 'z':
case 'A' ... 'Z':
others++;
break;
}
break;
}
}

total = vowels + newlines + tabs + spaces + others;
printf("Total number of characters: %d\n", total);
printf("Number of vowels: %d\n", vowels);
printf("Number of newlines: %d\n", newlines);
printf("Number of tabs: %d\n", tabs);
printf("Number of spaces: %d\n", spaces);
printf("Number of other characters: %d\n", others);

return 0;
}

关于c - 在考虑使用 switch 和 while 循环来添加句子和其中的字符时陷入困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54873931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com