C语言输入一个英文题目,将每个单词的首字母改为大写字母,并删除单词间多余的空格(两单词之间只保留一个空格)。
时间: 2024-02-21 12:01:13 浏览: 33
好的,这是一个比较有趣的问题。以下是一个简单的 C 代码实现:
```
#include <stdio.h>
#include <ctype.h>
int main() {
char c;
int first = 1; // 标记是否为单词的第一个字符
while ((c = getchar()) != EOF) {
if (isalpha(c)) { // 如果是字母
if (first) { // 如果是单词的第一个字符
putchar(toupper(c)); // 输出大写字母
first = 0; // 将标记设置为 0
} else {
putchar(tolower(c)); // 输出小写字母
}
} else if (isspace(c)) { // 如果是空格
if (!first) { // 如果不是单词的第一个字符
putchar(' '); // 输出一个空格
first = 1; // 将标记设置为 1
}
} else { // 其他字符
putchar(c); // 直接输出
}
}
return 0;
}
```
这个程序会逐个读取输入的字符,并根据字符的类型进行处理。如果是字母,会根据是否为单词的第一个字符输出相应的大小写字母;如果是空格,会根据是否为单词的第一个字符输出相应的空格。其他字符直接输出即可。