| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 461 人关注过本帖
标题:一道字符串更改顺序的填空题
只看楼主 加入收藏
jimmy2417
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-7
收藏
 问题点数:0 回复次数:2 
一道字符串更改顺序的填空题
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
char *fun(char *s)
{ int i, j, k, n; char *p, *t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0; k=0;
for(i=0; i<n; i++)
{ if(isdigit(s[i])) {
/**********found**********/
p[j]=s[i]; j++;}
else
{ t[k]=s[i]; k++; }
}
/**********found**********/
for(i=0; i<k; i++) p[j+i]= t[i];
p[j+k]=0;
/**********found**********/
return s;
}
main()
{ char s[80];
printf("Please input: "); scanf("%s",s);
printf("\nThe result is: %s\n",fun(s));
}
此题意思是输入一串字符然后将此字符串里的数字找出后排在前面,后面是字符.例如:输入jsk4%&51jj,输出451jsk%&jj,请高手指点错误在哪里!

[此贴子已经被作者于2006-9-20 19:38:06编辑过]

搜索更多相关主题的帖子: 顺序 字符 填空 
2006-09-20 13:11
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
char *fun(char *s)
{ int i, j, k, n; char *p, *t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0; k=0;
for(i=0; i<n; i++)
{ if(isdigit(s[i])) {
/**********found**********/
p[j]=s[i]; j++;}
else
{ t[k]=s[i]; k++; }
}
/**********found**********/
for(i=0; i<k; i++) p[j+i-1]= t[i];
p[j+k]='\0';
/**********found**********/
return p;
}
main()
{ char s[80];
printf("Please input: "); scanf("%s",s);
printf("\nThe result is: %s\n",fun(s));

}

倚天照海花无数,流水高山心自知。
2006-09-20 15:17
jimmy2417
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-7
收藏
得分:0 

多谢斑竹帮我解决这个问题,但是这个问题的错误好象还是有点问题,
你帮我填一下空好吗?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
char *fun(char *s)
{ int i, j, k, n; char *p, *t;
n=strlen(s)+1;
t=(char*)malloc(n*sizeof(char));
p=(char*)malloc(n*sizeof(char));
j=0; k=0;
for(i=0; i<n; i++)
{ if(isdigit(s[i])) {
/**********found**********/
p[空]=s[i]; j++;}
else
{ t[k]=s[i]; k++; }
}
/**********found**********/
for(i=0; i<空; i++) p[j+i]= t[i];
p[j+k]=0;
/**********found**********/
return 空;
}
main()
{ char s[80];
printf("Please input: "); scanf("%s",s);
printf("\nThe result is: %s\n",fun(s));
}
谢谢斑竹了!


2006-09-20 19:04
快速回复:一道字符串更改顺序的填空题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048757 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved