用C语言输入一个英文句子,仅包含字母和空格,将每个单词的第一个字母改写为大写字母,请使用数组和循环
时间: 2024-10-28 15:10:32 浏览: 145
在C语言中,你可以使用字符数组来存储输入的英文句子,并结合循环结构如`for`来处理每个单词。这里是一个简单的示例,使用`strtok`函数来分隔单词:
```c
#include <stdio.h>
#include <string.h>
void capitalize_first_char(char* sentence) {
char token;
char* word = strtok(sentence, " "); // 分割单词,空格作为分隔符
while (word != NULL) { // 遍历所有单词
if (*word) { // 检查非空单词
*word = toupper(*word); // 将第一个字符转为大写
word++; // 移动到下一个位置
}
sentence = strtok(NULL, " "); // 继续分割,直到结束
if (sentence == NULL) break; // 如果没有更多单词,退出循环
word = strtok(sentence, " "); // 从当前剩余部分开始寻找下一个词
}
}
int main() {
printf("请输入一个英文句子:");
fgets(sentence, sizeof(sentence), stdin); // 读取用户输入
sentence[strcspn(sentence, "\n")] = '\0'; // 清除换行符
capitalize_first_char(sentence);
printf("处理后的句子:%s\n", sentence);
return 0;
}
```
在这个程序中,`capitalize_first_char`函数首先通过`strtok`获取单词,然后使用`toupper`函数将每个单词的第一个字母转换为大写。`main`函数负责接收用户的输入并调用这个函数。
阅读全文
相关推荐















