【练习】
题目要求:
自定义函数之字符提取:将一个字符串中的元音字母复制到另一个字符串,然后输出。
输入:一行字符串
输出:元音字母(aeiou)
输入: abcde
输出: ae
解法一
#include <stdio.h>
int main()
{
void seek(char *p); //函数声明
char a[100];
gets(a);
seek(a); //调用函数
return 0;
}
void seek(char *p) //找到元音字母并输出
{
int i;
for(i=0;p[i]!='\0';i++)
{
if(p[i]=='a'||p[i]=='e'||p[i]=='i'||p[i]=='o'||p[i]=='u')
{
printf("%c",p[i]);
}
}
}
解法二(输出超限,请大神帮忙纠错指教)
#include <stdio.h>
#include <stdlib.h>
int main()
{
void seek(char *p); //函数声明
char *a;
a=calloc(100,sizeof(char));//开辟动态存储区
seek(a);
free(a); //释放动态存储区
return 0;
}
void seek(char *p) //找到元音字母并输出
{
int i;
for(i=0;p[i]!='/0';i++)
{
scanf("%c",&p[i]);
if(p[i]=='a'||p[i]=='e'||p[i]=='i'||p[i]=='o'||p[i]=='u')
{
printf("%c",p[i]);
}
}
}
编译:
.c:26:16: warning: multi-character character constant [-Wmultichar]
for(i=0;p[i]!=’/0’;i++)
输出:
解法二想尝试不同的方式去解题,然而输出超限,还没找到原因
救救我
请大神赐教!!