写一个c语言程序,从键盘输入字符串a,a中有若干个单词且单词间由一个或者多个空格相隔,字符串的开头和结尾也可能存在空格。设计一个程序将字符串a中每一个单词的首字母按照顺序放入字符串b中,并输出字符串b
时间: 2024-02-18 14:59:18 浏览: 80
以下是实现上述功能的C语言程序:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char a[MAX_LEN], b[MAX_LEN];
int len_a, len_b, i, j;
// 读入字符串a
printf("请输入字符串a:");
fgets(a, MAX_LEN, stdin);
len_a = strlen(a);
// 将每个单词的首字母放入字符串b中
j = 0;
for (i = 0; i < len_a; i++) {
if (i == 0 || isspace(a[i - 1])) { // 判断单词的开头
b[j++] = toupper(a[i]); // 将首字母转为大写并存入字符串b中
}
}
b[j] = '\0'; // 字符串b以空字符结尾
// 输出字符串b
len_b = strlen(b);
printf("字符串b为:%s\n", b);
return 0;
}
```
程序的主要思路是从字符串a中逐个字符遍历,判断每个单词的开头,将其首字母转为大写并存入字符串b中。最后输出字符串b。
其中,使用了C标准库中的`isspace()`函数判断字符是否为空格,`toupper()`函数将字符转为大写,`fgets()`函数从标准输入中读入字符串。另外,为避免字符串越界,程序中使用了预定义常量`MAX_LEN`来限制字符串的最大长度。
阅读全文