求指正:C语言-字符串前移后移
求问:我这个变成结果按例子输出,少个f,这个是哪里错了?/*编写程序:将字符数组s中所有字母字符前移,其他字符后移。例如,数组s为:asd123fgh543df,处理后新字符串为asdfghdf123543.*/
#include<stdio.h>
#define M 50
#include<string.h>
void main()
{
char s,str;
int i,j;
scanf("%s",s);
for(i=0,j=0;i<strlen(s)-1;i++){
if((s>='A'&&s<='Z')||(s>='a'&&s<='z')){
str=s;
j++;
}
}
for(i=0;i<strlen(s)-1;i++){
if(s<'A'||(s>'Z'&&s<'a')||s>'z'){
str=s;
j++;
}
}
str='\0';
printf("%s",str);
}
本帖最后由 风过无痕1989 于 2020-12-14 14:49 编辑
既然不被选为最佳,那我的代码留在这里也就没有意义了。下面的代码,是原文复制你自己的代码过来了,代码中的错误是你自己的
/*编写程序:将字符数组s中所有字母字符前移,其他字符后移。例如,数组s为:asd123fgh543df,处理后新字符串为asdfghdf123543.*/
#include<stdio.h>
#define M 50
#include<string.h>
void main()
{
char s,str;
int i,j;
scanf("%s",s);
for(i=0,j=0;i<strlen(s)-1;i++){
if((s>='A'&&s<='Z')||(s>='a'&&s<='z')){
str=s;
j++;
}
}
for(i=0;i<strlen(s)-1;i++){
if(s<'A'||(s>'Z'&&s<'a')||s>'z'){
str=s;
j++;
}
}
str='\0';
printf("%s",str);
}
这两句(第10、16行)
for(i=0,j=0;i<strlen(s)-1;i++){
......
for(i=0;i<strlen(s)-1;i++){
得修改为:
for(i = j = 0 ; i < strlen(s) ; i ++) {
......
for(i = 0 ; i < strlen(s) ; i ++) { jackz007 发表于 2020-12-13 22:16
这两句(第10、16行)
得修改为:
好的,非常感谢 风过无痕1989 发表于 2020-12-13 21:25
帮你改了一下
嗯呢,这样程序方便多了,非常感谢 本帖最后由 风过无痕1989 于 2020-12-14 14:11 编辑
乐瑜 发表于 2020-12-14 06:42
嗯呢,这样程序方便多了,非常感谢
重新改写你的程序,不选我的,帮你改写你自己的,也不选我的。好,以后不再回答你的问题 风过无痕1989 发表于 2020-12-13 21:25
既然不被选为最佳,那我的代码留在这里也就没有意义了。下面的代码,是原文复制你自己的代码过来了,代码中 ...
啊,不好意思,这个我当时看的时候,没有发现你帮我就错了。我以为就提供了个改进方法{:5_99:} 风过无痕1989 发表于 2020-12-14 08:59
重新改写你的程序,不选我的,帮你改写你自己的,也不选我的。好,以后不再回答你的问题
非常非常抱歉 风过无痕1989 发表于 2020-12-14 08:59
重新改写你的程序,不选我的,帮你改写你自己的,也不选我的。好,以后不再回答你的问题
也非常感谢你总是帮我回答我的问题{:10_284:}
页:
[1]