本题目要求编写程序,输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。用c语言
时间: 2024-11-21 07:20:32 浏览: 10
用c++实现将文本每个单词首字母转换为大写
在C语言中,你可以使用`ctype.h`库提供的函数来处理字符,并结合`strtok()`函数来分割字符串。下面是一个简单的程序示例,它接收用户输入的一行字符并转换每个单词的首字母为大写:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void capitalize(char *word) {
if (*word) { // 首字母不为空
*word = toupper(*word); // 转换为大写
for (int i = 1; word[i]; i++) { // 从第二个字符开始遍历
if (islower(word[i])) { // 如果不是大写字母
word[i] = tolower(word[i]); // 将其转换为小写
}
}
}
}
int main() {
char input[1000];
fgets(input, sizeof(input), stdin);
// 分割字符串为单词
char *token = strtok(input, " ");
while (token != NULL) {
capitalize(token); // 转换首字母
printf("%s ", token); // 输出单词
token = strtok(NULL, " "); // 获取下一个单词
}
return 0;
}
```
在这个程序中,`capitalize()` 函数用于处理单个单词,而 `main()` 函数负责获取输入并调用这个函数处理每个单词。注意,此代码假设输入字符串不超过1000个字符。
阅读全文