用c语言实现从键盘输入字符串a,a中有若干个单词且单词间由一个或者多个空格相隔,字符串的开头和结尾也可能存在空格。设计一个程序将字符串a中每一个单词的首字母按照顺序放入字符串b中,并输出字符串b。
时间: 2024-02-28 14:54:33 浏览: 92
去掉重复的字符串及在第一个字符串中删除在第二个字符串中出现的字符
可以使用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()函数,并对输入的字符串进行安全验证和处理。
阅读全文