用c语言写单词首字母大写:输入一行字符,将每个单词的首字母改为大写后输出。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。试编写相应程序。
时间: 2024-10-10 18:05:21 浏览: 52
在C语言中,你可以使用`ctype.h`库中的`toupper()`函数配合循环结构来实现这个功能。下面是一个简单的示例程序,它会读取一行字符,然后逐个单词地转换首字母为大写:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void capitalize(char *str) {
int len = strlen(str);
if (len > 0) {
// 如果第一个字符是小写字母,将其转换为大写
str[0] = toupper((unsigned char)str[0]);
// 遍历除第一个字符外的所有其他字符
for (int i = 1; i < len; i++) {
// 如果当前字符是空格,表示单词结束
if (str[i] == ' ')
// 将下一个字符转为大写,并跳过空格
str[i] = toupper((unsigned char)str[i + 1]);
else
// 否则保持原样
str[i] = str[i];
}
}
}
int main() {
char input[100]; // 假设输入长度不超过100个字符
printf("请输入一行字符(单词间用空格分隔): ");
fgets(input, sizeof(input), stdin); // 从标准输入获取一行字符
// 删除fgets读取的最后一行的换行符
input[strcspn(input, "\n")] = '\0';
capitalize(input);
printf("转换后的字符串: %s\n", input);
return 0;
}
```
当你运行这个程序并输入一些单词时,它会返回每个单词首字母大写的结果。
阅读全文