原题链接:[编程入门]自定义函数之字符提取
解题思路:这里输入字符串中的字符,一般是ASCII字符,从0到255,范围不大;采用查表v[256]的方法,例如'a'是元音字母,那么v['a']就设置为非零,if(v['a'])即可找到'a'并存入另一用来输出的字符串。
注意事项:这里的元音字母可以不包括相应的大写字母。
参考代码:
#include<stdio.h>
#include<string.h>
#define N 1000
int main(){
char *vowel(char *str1,const char *str2);
char s1[N],s2[N];
gets(s2);//输入字符串
puts(vowel(s1,s2));//找到元音字母并输出
return 0;
}
char *vowel(char *str1,const char *str2){
int i,j,len;
char v[256];//ASCII码表
memset(v,'\0',sizeof(v));//初始化
v['a']=v['e']=v['i']=v['o']=v['u']=' ';//特殊位置为非零
len=strlen(str2);
for(i=0,j=0;i<len;i++)
if(v[str2[i]])//用str2[i]查表找到元音字母
str1[j++]=str2[i];//存入另一字符串
str1[j]='\0';//字符串结尾
return str1;
}0.0分
34 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
int main(int argc, char *argv[]){ std::string a,b; std::cin>>a; for(std::string::iterator s = a.begin(); s != a.end(); ++s){ if(*s=='a' || *s=='e' || *s=='i' || *s=='o' || *s=='u'){ b+=*s; } } std::cout<<b; } 几行代码就能解决的,它不香吗?#include <stdio.h> void trans(char ch1[],char ch2[]) { int i,j; for(i=0,j=0;i!='\0';i++) { if((ch1[i]=='a')||(ch1[i]=='e')||(ch1[i]=='i')||(ch1[i]=='o')||(ch1[i]=='u')) { ch2[j]=ch1[i]; j++; } ch2[j]='\0'; } } int main() { void cpy(char ch1[],char ch2[]); char ch1[100],ch2[100]; gets(ch1); trans(ch1,ch2); printf("%s",ch2); return 0; } 有同学知道吗??我这个为什么输出是乱码??????????@酥北 #include<stdio.h> #include<string.h> int main() { char a[100],b[100],s; int n=0,m=0; s=getchar(); while(s!=' ') { a[n]=s; if(a[n]=='a'||a[n]=='e'||a[n]=='i'||a[n]=='o'||a[n]=='u') { b[m++]=a[n];} s=getchar(); n++; } int i; for( i=0;i<m;i++) { printf("%c",b[i]); } return 0; }为社么错误50%? #include <stdio.h> int str(char a[20],char b[20]) { int i,j; for(i=0,j=0;i<20;i++) { if(a[i]=='a' || a[i]=='e' || a[i]=='i' || a[i]=='o' || a[i]=='u') { b[j]=a[i]; j++; } if(a[i]=='\0')break; } } int main(int argc, char *argv[]) { char a[20],b[20]={0}; scanf("%s",a); str(a,b); printf("%s",b); return 0; }#include<iostream> #include"stdio.h" #include<cstdio> #include<cmath> #include<math.h> #include<algorithm> #include<stdio.h> #include<string.h> using namespace std; int main() { char a[100],b[100],s; int n=0,m=0; s=getchar(); while(s!='\n') { a[n]=s; if(a[n]=='a'||a[n]=='e'||a[n]=='i'||a[n]=='o'||a[n]=='u') { b[m++]=a[n];} s=getchar(); n++; } for(int i=0;i<m;i++) { printf("%c",b[i]); } return 0; } 为什么dev可以,这里提示运行错误啊