用C语言编写一个能将一行字符的每个单词的首字母改为大写后输出的程序。 所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是任意多个。(输入字符串请使用gets函数)
时间: 2024-03-20 07:44:39 浏览: 16
好的,这是一个简单的 C 语言程序,可以实现你的需求:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
printf("请输入一行字符:\n");
gets(str);
int i = 0;
while (str[i] != '\0') {
if (i == 0 || str[i-1] == ' ') {
str[i] = toupper(str[i]);
}
i++;
}
printf("转换后的结果为:\n%s\n", str);
return 0;
}
```
程序会提示你输入一行字符,然后使用 `gets` 函数读取输入的字符串。接着,程序会遍历字符串中的每个字符,如果当前字符是第一个字符或者前一个字符是空格,则将当前字符转换成大写字母。最后,程序输出转换后的字符串。
需要注意的是,`gets` 函数已经被标记为不安全的函数,不建议使用。在实际开发中,应该使用更安全的输入函数,比如 `fgets`。
相关问题
用C语言编写一个函数,输入字符串,要求将每个单词的第一个字母改为大写字母,并输出
好的,这是一个简单的 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` 函数,并输出结果。
用C语言编写函数将一个字符串中每一个单词的第一个字母转换为大写。
下面是一个简单的 C 语言函数,可以实现将字符串中每个单词的首字母转换为大写:
```
#include <ctype.h>
#include <string.h>
void upperCaseFirst(char *str) {
int i;
int len = strlen(str);
int capitalizeNext = 1; // 标记下一个字符是否需要大写
for (i = 0; i < len; i++) {
if (isspace(str[i])) { // 如果当前字符是空格或其他空白字符
capitalizeNext = 1; // 下一个字符需要被大写
} else if (capitalizeNext) { // 如果下一个字符需要被大写
str[i] = toupper(str[i]); // 转换为大写
capitalizeNext = 0; // 下一个字符不需要被大写
}
}
}
```
这个函数会遍历字符串中的每个字符,如果当前字符是一个空格或其他空白字符,则标记下一个字符需要被大写。如果当前字符不是空格或其他空白字符,并且下一个字符需要被大写,则将当前字符转换为大写。