Mister-小方


私信TA

用户名:1104986125

访问量:238612

签 名:

如此英俊为哪般

等  级
排  名 3
经  验 35659
参赛次数 1
文章发表 68
年  龄 19
在职情况 学生
学  校 大连交通大学
专  业 车辆工程

  自我简介:

解题思路以及注意事项:

  1. 注意是传参的还是定义的全局变量,不要在自定义函数中定义数组,不然函数调用结束后就会清楚数据。

  2. 注意在数组的什么地方加 '\0'。

  3. 注意不要忘了自增。

实例代码:

#include"stdio.h"
void trans(char a[],char b[]);
int main()
{
    char ch1[100],ch2[100];
    scanf("%s",ch1);
    trans(ch1,ch2);
    printf("%s",ch2);
    return 0;
}
void trans(char a[],char b[])
{
    int i=0,j=0;
    while(a[i])                           //这样写也行,可以思考下为什么
    {
        if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
        {
            b[j]=a[i];
            j++;
        }
        i++;
    }
    b[j]='\0';
}

大家还有什么不懂的请在下面评论区留言,小方会在看到的第一时间替你解疑

 

0.0分

8 人评分

  评论区

为什么要写成while (a[i])

为什么我用的循环语句就报错了
l=strlen(a)
for(i=0;i<l;i++)
2018-12-21 18:04:51
在ASCII码表中,每个字符都有相应的整数值,而“\0”的整数值刚好是0;秒啊,不用算字符串长度了。
2018-12-06 17:01:52
#include<stdio.h>
#define n 100
void trans(char a[],char b[]);
int main()
{
	char ch1[n],ch2[n];
	gets(ch1);
	trans(ch1,ch2);
	puts(ch2);
	return 0;
}
void trans(char a[],char b[])
{
	int i=0,j=0;
	for(i=0;i<n;i++)
	{
		if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
		{
			b[j]=a[i];
			j++;
		}
	}
	b[j]='\0';
}
为什么用for循环不对
2018-10-02 21:33:38
错的,没按顺序输出,还有不能删除重复的元音
2018-08-12 09:03:26
while(a[i])     为什么可以这样写
2018-06-08 14:13:02
为什么可以写成while(a[i])
2018-06-08 13:40:53
大写的元音字母算不算
2018-05-30 19:04:38
#include<stdio.h>
int main()
{
	char x;
	while((x=getchar())!=10)
	{
		if(x=='a'||x=='e'||x=='i'||x=='o'||x=='u')
		printf("%c",x);
	}	
	return 0;
 } 
请教大神 这样写为什么不对啊!
2018-04-30 22:29:07