C语言问题:先从键盘输入一个字符串存放在字符数组a中,再将a元素的所有小写字母存放到字符数组b中

#include<stdio.h>#include<string.h>voidmain(){chara[100]="",b[100]="";inti=0;gets(a);... #include<stdio.h>
#include<string.h>
void main()
{ char a[100]="",b[100]="";
int i=0;
gets(a);
while(a[i]!='\0')
{ if(a[i]>='a'&&a[i]<='z')
strcpy(b,a);
i++
}
puts(b);

}

我这个有什么毛病呢?
帮我做一下 谢谢。。。
展开
 我来答
yaochy
2009-02-04
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
#include<string.h>
void main()
{ char a[100]="",b[100]="";
int i=0;
int j=0;
gets(a);
while(a[i]!='\0')
{ if(a[i]>='a'&&a[i]<='z')
{
b[j++]=a[i];
}
i++ ;
}
puts(b);

}
strcpy的结果每次都把a的值拷贝到b里,结果是b和a一样或b是空字符串
希声和寡
2009-02-04 · TA获得超过2.6万个赞
知道大有可为答主
回答量:6437
采纳率:0%
帮助的人:3444万
展开全部
strcpy(b,a);
这一句是将以a打头,以'\0'结尾的字符串拷贝到b中,当然得不到正确结果

这么改:
#include<stdio.h>
#include<string.h>
void main()
{ char a[100]="",b[100]="";
int i=0,j=0; ///////增加变量j,用以对于b的下标进行计数
gets(a);
while(a[i]!='\0')
{ if(a[i]>='a'&&a[i]<='z')
b[j++]=a[i]; ///////进行成员拷贝
i++;///////加上;
}
puts(b);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
│kid│68d
2009-02-04 · 超过10用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:0
展开全部
i++;你少了一个分号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式