用C语言用户输入一个字符串 s(长度<1000,以回车结束),请将所有句子首字母大写、过滤多余空格后输出, 即遇到多于1个的连续空格,仅保留一个空格。 例如 s = "what's your name? my name is Tony." 应输出:What's your name? My name is tony
时间: 2023-05-19 12:06:30 浏览: 90
以下是C语言代码实现:
#include <stdio.h>
#include <ctype.h>
int main() {
char s[1000];
fgets(s, 1000, stdin); // 读入字符串
int i = 0;
int flag = 0; // 标记是否为句子的开头
while (s[i] != '\0') {
if (isspace(s[i])) { // 如果是空格
if (flag) { // 如果前面是句子的开头
putchar(' '); // 输出一个空格
flag = 0; // 标记为不是句子的开头
}
} else {
if (flag == 0) { // 如果前面不是句子的开头
putchar(toupper(s[i])); // 输出大写字母
flag = 1; // 标记为句子的开头
} else {
putchar(tolower(s[i])); // 输出小写字母
}
}
i++;
}
return 0;
}
输入示例:
what's your name? my name is Tony.
输出示例:
What's your name? My name is tony.
阅读全文