| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1049 人关注过本帖
标题:C语言题目求改
只看楼主 加入收藏
修白川
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-6-13
收藏
 问题点数:0 回复次数:6 
C语言题目求改

函数FUN的功能是:将既在字符串s中出现又在字符串t中出现的字符构成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符. 例如:当s="ABBCDE",t="BDFG"时,u中的字符串为"BBD".

String sOutput; for(int i=0;i<s.Length();i++) { String j=s.StringAt(i); if(t.IndexOf(j)!=-1) { sOutput+=j; } } System.out.println(sOutput);

求高手指教

搜索更多相关主题的帖子: C语言 
2004-06-13 23:03
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

修白川,

你的题意不够明确, 比如 s = "ABCDE" t = "BDCFG"

那么现在 u 究竟应该是 "BCD" 呢 还是 "BDC" ?


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-06-13 23:52
修白川
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-6-13
收藏
得分:0 

Function GetStr(A in char,--输入参数A字符串类型

B in char,--输入参数B字符串类型

C out char --输出参数C字符串类型)

LA NUMBER:=LENGTH(A); --字符串A的长度

A1 NUMBER; --循环变量

C1 CHAR; --字符变量

BEGIN

A1:=1; --初始化循环变量从1开始

C:=NULL; --输出参数初始化为空值

LOOP

EXIT WHEN A1>LA; --A1>LA,循环变量>字符串长度,循环结束

C1:=SUBSTR(A,A1,1);--截取字符串A的第A1位赋值给C1,C语言内有对应函数

IF C1 IN B THEN --如果字符C1在字符串B内,C语言内有对应函数

C:=C:||C1; --把C1粘贴到输出字符串C中,C语言内有对应函数

END IF;

A1:=A1+1; --循环变量+1

END LOOP;

END;

这是某书上写的,请高手指教下

[此贴子已经被作者于2004-06-14 21:23:27编辑过]

2004-06-14 21:22
修白川
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-6-13
收藏
得分:0 
是BCD吧
2004-06-15 13:15
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

void fun(char*a,char*b,char*u); main() { char*str1="ABCDE" ; char*str2="BDCFG" ; char s[50]; fun(str1,str2,s); printf("%s",s); } void fun(char*a,char*b,char*u) { char*ptr ; while(*a) { ptr=b ; while(*ptr)if(*a==*ptr++) { *u++=*a ; break ; } a++; } *u='\0' ; }

还有什么情况未考虑进去话,你自己改吧。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-15 14:30
修白川
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-6-13
收藏
得分:0 

谢谢楼上的了,题的答案我找到了,但相关注释不太对,您能帮忙改下吗?

源代码及注释 void fun (char *s, char *t, char *u) /*定义函数*/ { int i, j, sl, tl; /*定义整型变量*/ sl = strlen(s); tl = strlen(t); for (i=0; i<sl; i++) { for (j=0; j<tl; j++) if (s[i] == t[j]) break; /*如果符合s[I]==t[j],就跳出循环*/ if (j<tl) *u++ = s[i]; } *u = '\0'; } main() /*主函数*/ { char s[100], t[100], u[100]; /*输入字符*/ clrscr(); printf("\nPlease enter string s:"); /*提示输入字符*/ scanf("%s", s); /*输入字符s*/ printf("\nPlease enter string t:"); /*提示输入字符*/ scanf("%s", t); /*输入字符t*/ fun(s, t, u); /*调用定义函数*/ printf("The result is: %s\n", u); /*输出结果u*/ }

2004-06-15 21:47
mmaa
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-6-26
收藏
得分:0 
看不懂
2008-06-26 22:44
快速回复:C语言题目求改
数据加载中...
 
   



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

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