使用 C 语言实现将输入的一行字符中每个单词的首字母改为大写的程序:
时间: 2024-12-20 17:16:19 浏览: 16
在C语言中,我们可以使用`ctype.h`库提供的函数来处理字符大小写转换,以及`strtok()`函数来分割字符串成单词。以下是一个简单的示例程序,它接收一行输入,然后将每个单词的首字母转换为大写:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void capitalize(char *word) {
if (*word != '\0') {
*word = toupper(*word);
word++;
while (*word != '\0' && isspace(*word)) {
word++;
}
capitalize(word); // 递归处理剩余部分
}
}
int main() {
char input[1000];
fgets(input, sizeof(input), stdin);
// 删除换行符
size_t len = strlen(input);
if (input[len - 1] == '\n') {
input[len - 1] = '\0';
}
char *token = strtok(input, " ");
while (token != NULL) {
capitalize(token);
printf("%s ", token);
token = strtok(NULL, " ");
}
return 0;
}
```
这个程序首先读取一行输入,然后使用`strtok()`函数通过空格分割成单词。`capitalize()`函数接受单词并检查其是否为空。如果非空,它会将第一个字符转为大写,并跳过所有空格直到找到下一个单词。接着对每个单词应用`capitalize()`函数。
注意:这个程序假设单词之间只有空格分隔,如果你的输入中包含其他分隔符,你需要相应地调整`strtok()`的第二个参数。
阅读全文