#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是空字符串
#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);
}
这一句是将以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++;你少了一个分号