作者IMLeroy (乖小乖)
看板C_and_CPP
标题[问题]C 字串比较与输出
时间Sun Sep 11 15:43:08 2016
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS2013
问题(Question):
请问要如何做字串内容的比较与删减 例如有两字串123 245
希望可以比较过两字串之後把两串中重复的字删除并合并
喂入的资料(Input):
目前写的结构跟字串是长这样
struct MyStruct{
char *number1;
char *number2;
char *number3;
}
typedef struct MyStruct MS
void main(){
MS c[2];
c[0].number1="1";
c[0].number2="2";
c[0].number3="3";
c[1].number1="2";
c[1].number2="4";
c[1].number3="5";
}
合并的部分已经做完了 目前可以把两字串合并 但是不知道要怎麽比较跟删除重复
char* MSarray_total(MS *arr,int size){
const int strSize=100;
char *str=new char[strSize];
str[0]='\0';
int i;
for (i=0;i<size,i++){
stract_s(str,strSize,arr[i].number1);
stract_s(str,strSize,arr[i].number2);
stract_s(str,strSize,arr[i].number3);
}
return str;
}
预期的正确结果(Expected Output):
目前输出会是 123245
希望可以输出成12345(重复的只显示一次)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.240.28.1
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1473579791.A.77E.html
1F:推 Davidhu127: 首先,你那个123不叫做一个"字串",而是三个字串了! 09/11 17:00
2F:→ Davidhu127: 正确使用应该是char* s="123" 09/11 17:00
3F:→ Davidhu127: 其实你根本不需要定义struct,简单code参考:ideone.c 09/11 17:30
4F:→ Davidhu127: om/z6kGD5 09/11 17:30
5F:→ jacky1989: 根据C/C++的规范,主函式要回传值喔!请改成int main 09/11 19:42
6F:推 xsssxxzz: 1. 找出两字串联集 09/11 21:34
7F:→ xsssxxzz: 2. 创新字串, 用回圈,不append字串1联集中的元素 09/11 21:36
8F:→ xsssxxzz: 3. 合并新字串与字串2 END 09/11 21:37
9F:→ xsssxxzz: 笨方法~ 但就留给高手用更有效率的方式解了! 09/11 21:38
10F:推 EdisonX: 开 array 纪录 s1, s2 有出现过的,再polling array。 09/12 12:25
11F:推 flyfoxy: hash table/map 09/12 14:52