输入一个英文句子,将每个单词的第一个字母改成大写字母。
时间: 2024-09-28 12:15:17 浏览: 54
要实现这个功能,你可以使用C语言中的字符串操作和循环结构。这里有一个简单的程序示例,它遍历输入的英文句子,将其每个单词的首字母转换为大写:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void capitalize_first_letter(char *sentence) {
if (sentence[0] == '\0') { // 如果字符串为空,则直接返回
return;
}
int i = 0;
while (sentence[i]) {
// 检查当前字符是否为空格,如果是则跳过并处理下一个单词
if (isspace(sentence[i])) {
if (i != 0 && isalpha(sentence[i - 1])) { // 非空格且前一个字符是字母,则大写第一个字母
sentence[i - 1] = toupper(sentence[i - 1]);
}
i++;
} else { // 如果不是空格,处理当前单词
sentence[i] = toupper(sentence[i]); // 将当前字符转为大写
}
i++;
}
}
int main() {
char input_sentence[100];
printf("Enter an English sentence: ");
fgets(input_sentence, sizeof(input_sentence), stdin); // 获取用户输入
// 移除末尾的换行符
size_t len = strlen(input_sentence);
if (input_sentence[len - 1] == '\n') {
input_sentence[len - 1] = '\0';
}
capitalize_first_letter(input_sentence);
printf("Capitalized sentence: %s\n", input_sentence);
return 0;
}
```
这个程序首先获取用户输入的英文句子,然后调用`capitalize_first_letter`函数,该函数遍历字符串并将每个单词的首字母转换为大写。需要注意的是,此程序假设输入的句子由空格分隔单词。
如果你运行这个程序,它会提示你输入一个英文句子,然后输出将每个单词首字母大写的句子。
阅读全文