| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 550 人关注过本帖
标题:求助字符串问
只看楼主 加入收藏
gzzytxy
Rank: 2
等 级:论坛游民
帖 子:77
专家分:16
注 册:2010-1-26
结帖率:69.7%
收藏
已结贴  问题点数:12 回复次数:11 
求助字符串问
1,假如有一个字符串"355644"  字符的位数没有定有多有少  把重复的去掉并按升序排列 用什么函数
2,数字号码为0--9   现在有字符串数字"4563" 求另外的6个数字并按升序排列 怎么弄呀
搜索更多相关主题的帖子: 字符串 
2012-12-08 20:57
其实不必完美
Rank: 1
等 级:新手上路
帖 子:31
专家分:6
注 册:2012-10-28
收藏
得分:2 
2、
for i=0 to 9
if i<3 or i>6
?i
endif
endfor
return

[ 本帖最后由 其实不必完美 于 2012-12-8 22:21 编辑 ]
2012-12-08 22:20
gzzytxy
Rank: 2
等 级:论坛游民
帖 子:77
专家分:16
注 册:2010-1-26
收藏
得分:0 
回复 2楼 其实不必完美
不一定是4563 假如是26478
2012-12-08 22:59
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:2 
程序代码:
CLEAR
CSTR1=[355644]
CSTR=[]
FOR I=1 TO LEN(CSTR1)
    IF !SUBSTR(CSTR1,I,1)$CSTR &&过滤重复字符
       CSTR=CSTR+SUBSTR(CSTR1,I,1)+[,]
    ENDIF
ENDFOR
CSTR=LEFT(CSTR,LEN(CSTR)-1)
=ALINES(A,CSTR,[,])
=ASORT(A)
CSTR=[]
FOR I=1 TO ALEN(A)
    CSTR=CSTR+A(I)
ENDFOR
?CSTR


[ 本帖最后由 bccn201203 于 2012-12-9 04:18 编辑 ]
收到的鲜花
  • 月沐庭轩2012-12-09 08:58 送鲜花  5朵   附言:好代码
2012-12-09 04:10
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:2 
第二问:
程序代码:
FUNCTION 数字号码(原数字)
返回=""
FOR i=0 TO 9
    IF !TRANSFORM(i)$原数字
        返回=返回+!TRANSFORM(i)
    ENDIF
ENDFOR
RETURN 返回
ENDFUNC


[ 本帖最后由 月沐庭轩 于 2012-12-9 14:17 编辑 ]

坚持学习vfp,QQ:306805680
2012-12-09 09:06
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:2 
回复 5楼 月沐庭轩
过滤掉重复字符,然后排序,你的代码能达到要求吗?

坚守VFP最后的阵地
2012-12-09 09:30
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
回复 6楼 sdta
这是第二问呀,不是第一问,我没看到问题呀。第一问,四楼回答得非常好了。

坚持学习vfp,QQ:306805680
2012-12-09 09:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
其实楼主的两个问题是用同样的方法解决的:先排序,后处理。
1.先排序字符串,然后遍历一次砍掉重复的字符,这种方法不限于数字字符串,可以是任何字符串,也是查找数据表中重复记录的常用方法;
2.先构造"0123456789",遍历,对每个字符在"4563"中比对,有的就砍掉,最后剩下即为所求。

[ 本帖最后由 TonyDeng 于 2012-12-9 11:29 编辑 ]

授人以渔,不授人以鱼。
2012-12-09 11:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
程序代码:
*问题2
CLEAR
CREATE CURSOR t1 (bh c(1))
FOR I=0 TO 9
    INSERT INTO T1 VALUES (TRANSFORM(I))
ENDFOR
CREATE CURSOR t2 (bh c(1))
CSTR=[4563]
FOR I=1 TO LEN(CSTR)
    INSERT INTO T2 VALUES (SUBSTR(CSTR,I,1))
ENDFOR
SELECT A.BH,B.BH BH1 FROM T1 A FULL JOIN T2 B ON B.BH==A.BH ORDER BY A.BH INTO CURSOR T3
SELECT T3
CSTR=[]
SCAN FOR ISNULL(BH1)
   CSTR=CSTR+BH
ENDSCAN
?CSTR

坚守VFP最后的阵地
2012-12-09 12:01
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
程序代码:
*参考楼上各位的意见
CLEAR
CSTR=[]
FOR I=0 TO 9
    IF NOT TRANSFORM(I)$[4563]
       CSTR=CSTR+TRANSFORM(I)
    ENDIF
ENDFOR
?CSTR

坚守VFP最后的阵地
2012-12-09 12:07
快速回复:求助字符串问
数据加载中...
 
   



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

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