用c语言编写一个程序,输入一个字符串,将其中的元音字母存入另一个字符串并输出
时间: 2023-06-06 19:07:23 浏览: 49
好的,这是一个关于编程的问题,我很乐意回答。
下面是用C语言编写的程序:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], vowels[100];
int i, j = 0;
printf("输入一个字符串:");
gets(str);
for(i=0; str[i]!='\0'; i++)
{
if(str[i]=='a' || str[i]=='e' || str[i]=='i' ||
str[i]=='o' || str[i]=='u' || str[i]=='A' ||
str[i]=='E' || str[i]=='I' || str[i]=='O' ||
str[i]=='U')
{
vowels[j] = str[i];
j++;
}
}
vowels[j] = '\0';
printf("元音字母为:%s\n", vowels);
return 0;
}
```
该程序从键盘输入一个字符串,然后将其中的元音字母存入另一个字符串并输出。
如果您有任何其他编程问题,欢迎随时向我提问。
相关问题
用c语言编写一个程序 输入一个字符串 输出其中所出现过的大写英文字母
下面是一个示例程序,可以实现输入一个字符串,然后输出其中所有出现过的大写英文字母:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int count[26] = {0};
int i, len;
printf("请输入一个字符串:\n");
fgets(str, 100, stdin); // 从标准输入读取字符串
len = strlen(str);
for (i = 0; i < len; i++) {
if (isupper(str[i])) { // 如果当前字符是大写字母
count[str[i] - 'A']++; // 统计出现次数
}
}
printf("出现过的大写英文字母有:\n");
for (i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%c ", 'A' + i); // 输出字母
}
}
return 0;
}
```
上述程序中,我们定义了一个字符数组 `str`,用来存储用户输入的字符串。然后我们定义了一个整型数组 `count[26]`,用来统计每个大写字母出现的次数。变量 `i` 用来循环遍历字符串中的每个字符,变量 `len` 是字符串的长度。
在循环中,我们首先使用 `isupper` 函数判断当前字符是否是大写字母。如果是,就通过 `count` 数组统计出现次数。
最后,我们再次循环输出出现过的大写英文字母。
注意,我们使用了 `fgets` 函数来从标准输入读取字符串,而不是 `scanf` 函数。这是因为 `fgets` 可以一次读取整行字符串,而 `scanf` 只能读取一个单词,容易导致输入不完整的问题。
用C语言编写一个程序,输入一个字符串,反转字符串并输出
以下是用C语言编写的程序,输入一个字符串,反转字符串并输出:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, i, j;
char temp;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0, j = len - 1; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
printf("反转后的字符串:%s", str);
return 0;
}
```
程序首先使用scanf()函数读取用户输入的字符串,并使用strlen()函数获取该字符串的长度。然后,程序使用一个for循环,从字符串的两端开始,依次交换字符,以达到反转字符串的目的。最后,程序输出反转后的字符串。