换一个不用capitalize 函数的
时间: 2024-03-25 08:38:09 浏览: 11
好的,以下是不使用 `capitalize` 函数的代码:
```c
#include <stdio.h>
#include <ctype.h>
void uppercase_first(char *str) {
// 将第一个字母改为大写
*str = toupper(*str);
// 循环遍历字符串
while (*str != '\0') {
// 如果当前字符是空格,则将下一个字符改为大写
if (*str == ' ') {
*(str + 1) = toupper(*(str + 1));
}
str++;
}
}
void first_lowercase(char *str) {
// 将第一个字母改为小写
*str = tolower(*str);
// 循环遍历字符串
while (*str != '\0') {
// 如果当前字符是空格,则将下一个字符改为小写
if (*str == ' ') {
*(str + 1) = tolower(*(str + 1));
}
str++;
}
}
int main() {
char str[] = "hello world!";
uppercase_first(str);
printf("%s\n", str);
first_lowercase(str);
printf("%s\n", str);
return 0;
}
```
这个程序中,我们定义了两个函数 `uppercase_first` 和 `first_lowercase`,它们分别将字符串的第一个单词的第一个字母改为大写和小写。这两个函数的实现方式与上面的 `capitalize` 函数类似,但是它们分别使用 `toupper` 和 `tolower` 函数将字母转换为大写或小写。在 `main` 函数中,我们先测试 `uppercase_first` 函数,再测试 `first_lowercase` 函数,以验证它们的正确性。