用C语言编写一个函数,输入字符串,要求将每个单词的第一个字母改为大写字母,并输出
时间: 2024-03-15 14:47:34 浏览: 87
好的,这是一个简单的 C 语言函数,可以实现您的要求:
```c
#include <stdio.h>
#include <ctype.h>
void capitalize(char* str) {
int cap_next = 1; // 标记下一个字符是否需要大写化
while (*str) {
if (isspace(*str)) {
cap_next = 1; // 下一个字符需要大写化
} else if (cap_next) {
*str = toupper(*str); // 大写化当前字符
cap_next = 0; // 下一个字符不需要大写化
}
str++;
}
}
int main() {
char str[] = "hello world! this is a test.";
capitalize(str);
printf("%s\n", str);
return 0;
}
```
这个函数的核心是 `capitalize` 函数,它使用了 C 语言中的 `isspace` 和 `toupper` 函数来实现。`isspace` 函数用于判断一个字符是否为空格字符(包括空格、制表符、换行符等),`toupper` 函数用于将一个字符转换为大写字母。`capitalize` 函数会遍历输入的字符串,如果遇到空格字符,则标记下一个字符需要大写化;如果遇到需要大写化的字符,则将其大写化,并取消下一个字符的大写化标记。最后,`main` 函数调用 `capitalize` 函数,并输出结果。
阅读全文