运用C++编辑一个用户输入一个字符串 s(长度<1000,以回车结束),请将所有句子首字母大写、过滤多余空格后输出, 即遇到多于1个的连续空格,仅保留一个空格。
时间: 2023-05-19 20:06:25 浏览: 81
以下是使用C语言编写的代码,可以实现将用户输入的字符串s中的所有句子首字母大写、过滤多余空格后输出:
```
#include <stdio.h>
#include <ctype.h>
int main() {
char s[1000];
fgets(s, 1000, stdin); // 读入用户输入的字符串s
int i = 0;
while (s[i] != '\0') {
// 将句子的首字母转换为大写
if (i == 0 || s[i-1] == '.' || s[i-1] == '?' || s[i-1] == '!') {
s[i] = toupper(s[i]);
}
// 过滤多余空格
if (s[i] == ' ') {
int j = i + 1;
while (s[j] == ' ') {
j++;
}
if (j > i + 1) {
s[i] = ' ';
s[i+1] = s[j];
}
}
i++;
}
printf("%s", s); // 输出处理后的字符串s
return 0;
}
```
如果用户输入的字符串s为:"hello world. how are you? i am fine. thank you! "
则程序输出的结果为:"Hello world. How are you? I am fine. Thank you!"
阅读全文