编写一个程序,让用户输入一段英文句子,然后输出该句子中每个单词的首字母大写,要求:1、字符串以空格分隔单词,2、不改变原字符串,只处理首字母,3、如果单词的第一个字符已经是大写,那么就不做任何处理,#include <stdio.h>#include <string.h>void cap……...
编写一个程序,让用户输入一段英文句子,然后输出该句子中每个单词的首字母大写。
要求:
1、字符串以空格分隔单词。
2、不改变原字符串,只处理首字母。
3、如果单词的第一个字符已经是大写,那么就不做任何处理。
#include <stdio.h> #include <string.h> void capitalize_first_letter(char *str) { if (*str != '\0') { // 检查是否为空字符 if (str[0] >= 'a' && str[0] <= 'z') { // 如果是小写,转换为大写 str[0] = str[0] - 32; // 小写字母转大写字母的ASCII值差 } // 递归处理剩下的字符 capitalize_first_letter(str + 1); } } int main() { char sentence[100]; // 输入的句子,最大长度100 printf("Enter a sentence: "); fgets(sentence, sizeof(sentence), stdin); // 从标准输入读取 // 去掉末尾的换行符 sentence[strlen(sentence) - 1] = '\0'; capitalize_first_letter(sentence); // 处理首字母 printf("Sentence with capitalized first letter: %s\n", sentence); // 输出结果 return 0; }
请根据需要进行修改和扩展,如果你需要更难或者特定主题的题目,欢迎继续提问。