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

#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);

}

我这个有什么毛病呢?
帮我做一下 谢谢。。。

#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是空字符串
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-02-04
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);
}
第2个回答  2009-02-04
i++;你少了一个分号
相似回答