用c语言实现从键盘输入字符串a,a中有若干个单词且单词间由一个或者多个空格相隔,字符串的开头和结尾也可能存在空格。设计一个程序将字符串a中每一个单词的首字母按照顺序放入字符串b中,并输出字符串b。
时间: 2024-02-28 16:54:33 浏览: 87
C语言程序设计-将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用’.’结束输入; .c
可以使用C语言的字符串处理函数来实现该功能,具体步骤如下:
1. 从键盘输入字符串a。
2. 定义一个字符指针p,指向字符串a的首地址。
3. 定义一个字符数组b,用于存放每个单词的首字母。
4. 使用while循环遍历字符串a,当遇到空格时,将指针p移动到下一个单词的首字母位置,并将当前单词的首字母存入字符数组b中。
5. 循环结束后,将字符数组b中的内容输出即可。
下面是实现该功能的代码示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
int main() {
char a[MAX_SIZE];
char b[MAX_SIZE];
char *p = a;
int i = 0;
printf("请输入字符串a:");
gets(a); // 从键盘输入字符串a
// 遍历字符串a
while (*p != '\0') {
// 跳过开头的空格
while (*p == ' ') {
p++;
}
// 将当前单词的首字母存入字符数组b中
b[i++] = *p;
// 移动指针p到当前单词的结尾
while (*p != ' ' && *p != '\0') {
p++;
}
}
// 在字符数组b的末尾添加结束符
b[i] = '\0';
printf("输出字符串b:");
puts(b); // 输出字符串b
return 0;
}
```
注意,上述代码中使用了gets()函数来获取输入的字符串a,该函数存在安全问题,不建议在实际应用中使用。在实际应用中,应该使用fgets()函数,并对输入的字符串进行安全验证和处理。
阅读全文