用c语言从键盘输入字符串a,a中有若干个单词且单词间由一个或者多个空格相隔,字符串的开头和结尾也可能存在空格。设计一个程序将字符串a中每一个单词的首字母按照顺序放入字符串b中,并输出字符串b。
时间: 2024-02-15 09:03:29 浏览: 73
好的,我可以为您提供代码实现,请参考以下代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void get_first_letters(char *a, char *b) {
int i, j = 0, len = strlen(a);
for (i = 0; i < len; i++) {
if (a[i] != ' ' && (i == 0 || a[i-1] == ' ')) {
b[j++] = a[i];
}
}
b[j] = '\0';
}
int main() {
char a[MAX_LEN], b[MAX_LEN];
printf("请输入字符串a:\n");
fgets(a, MAX_LEN, stdin);
get_first_letters(a, b);
printf("每一个单词的首字母按照顺序放入字符串b中为:%s\n", b);
return 0;
}
```
代码的主要思路是遍历字符串a,当发现一个新的单词时,将其首字母放入字符串b中。具体实现时,可以使用一个索引j来记录字符串b的长度,并在遍历过程中不断更新j的值,从而将每一个单词的首字母依次放入字符串b中。
相关问题
1、写一个c语言程序,从键盘输入字符串a,a中有若干个单词且单词间由一个或者多个空格相隔,字符串的开头和结尾也可能存在空格。设计一个程序将字符串a中每一个单词的首字母按照顺序放入字符串b中,并输出字符串b
好的,我来帮您写一个符合要求的 C 语言程序:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char a[100], b[100];
int i, j = 0, len;
printf("请输入字符串a:");
gets(a); // 从键盘输入字符串a
len = strlen(a);
for (i = 0; i < len; i++)
{
if (a[i] != ' ' && (i == 0 || a[i-1] == ' ')) // 判断单词的首字母
{
b[j++] = a[i]; // 将首字母存入字符串b中
}
}
b[j] = '\0'; // 在字符串b的末尾添加结束符
printf("输出字符串b:");
puts(b); // 输出字符串b
return 0;
}
```
程序的思路是:首先从键盘输入字符串 a,然后遍历字符串 a 中的每一个字符,判断是否为单词的首字母,如果是,则将其存入字符串 b 中。最后输出字符串 b。
需要注意的是,在输入字符串 a 时,使用 gets 函数,因为该函数可以读取空格,而 scanf 函数无法读取空格。同时,在输出字符串 b 时,使用 puts 函数,因为该函数可以输出字符串,并自动换行。
写一个c语言程序,1、从键盘输入字符串a,a中有若干个单词且单词间由一个或者多个空格相隔,字符串的开头和结尾也可能存在空格。设计一个程序将字符串a中每一个单词的首字母按照顺序放入字符串b中,并输出字符串b
下面是一个简单的 C 语言程序,实现了上述要求:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char a[1000], b[1000];
int i, j = 0, len;
printf("请输入字符串:\n");
fgets(a, 1000, stdin); // 使用 fgets 函数从标准输入读取字符串
len = strlen(a);
for (i = 0; i < len; i++) {
if (a[i] == ' ' || a[i] == '\n') // 判断是否是空格或者换行符
continue;
b[j++] = a[i]; // 将首字母存入字符串 b 中
while (a[i] != ' ' && a[i] != '\n' && i < len) // 跳过单词的其它字母
i++;
}
b[j] = '\0'; // 字符串 b 的末尾加上结束符
printf("输出字符串 b:\n");
printf("%s\n", b);
return 0;
}
```
在程序中,我们首先定义了两个字符数组 `a` 和 `b`,分别用于存储用户输入的字符串和每个单词的首字母。
然后,我们使用 `fgets()` 函数从标准输入中读取字符串,可以保证输入的字符串长度不超过 `1000`。
接着,我们遍历字符串 `a` 中的每个字符,如果是空格或者换行符,就跳过,如果是字母,则将其存入字符串 `b` 中,并且一直往后遍历,直到遇到下一个空格或者换行符。
最后,我们在字符串 `b` 的末尾加上结束符 `\0`,并使用 `printf()` 函数输出字符串 `b`。
阅读全文