c語言求兩個字串的交集

2022-09-20 18:30:08 字數 1285 閱讀 9868

目錄

求兩個字串的交集,看似簡單,實則需要考慮的細節很多。

我的思路:

1.將兩個字串簡化,將裡面重複的字母減少為乙個。

2.拼接兩個字串,借助迴圈把重複出現兩次的字元找出來。

有了思路開始寫**。

思路:1.定義兩個儲存字串的陣列tt[m],pp[m]

2.定義指標*p接收fun2() 返回值,輸出交集

3.輸入兩個字串(此處注意越界問題)

4.呼叫函式

5.輸出交集

#include

#include //用到strcat(),strlen()函式

#define m 50

void fun1(char tt); //將字串中相同的字母去掉

char *fun2(char tt); //將重複的(子集)找出來

int main()

return 0;

}fun1()作用是將字串中重複的字元只保留乙個

思路:1.先將重複出現的字元出去第一次出現那個都換成' '(此處為乙個空格)

2.在將字串陣列元素移動,去除' '(空格)

void fun1(char tt) //將重複的程式設計客棧字元抹掉

{ int i,j;

char ch;

for(i=0;i程式設計客棧)

{if(tt[i]==' ') //找到' '位置

{

for(j=i;j

fun2()將重複出現的字元挑出來

思路:1.找到相同字元,並儲存在static aa[m]中www.cppcns.com(小重點)

2.返回第乙個字元的位址

www.cppcns.comchar *fun2(char tt) //確定子集字串,返回字串第乙個字元的位址

{ int i,j,k;

char ch;

static char aa[m]; //靜態變數,保證呼叫函式結束後陣列還在

char *p;

k=0;

for(i=0;i

這個**任然後缺陷,因為用這個**求得兩個字串的交集永遠不會出現空格。

其他思路推薦:

先在第乙個字串中確定乙個字元,在第二個字串中查詢是否存在hakkyaizrx相同字串

這條思路特要注意字串中字元重複出現帶來的影響

求兩個字串的距離

給定兩個長度相等的,由小寫字母組成的字串s1和s2,定義s1和s2的距離為兩個字串有多少個位置上的字母不相等。現在牛牛可以選定兩個字母x1和x2,將s1中的所有字母x1均替換成x2。x1和x2可以相同 牛牛希望知道執行一次替換之後,兩個字串的距離最少為多少。x1和x2是自己求的,未知 輸入 aaa ...

C語言連線兩個字串

一種是使用c語言自帶的strcat函式來完成,strcat str1,str2 可以將str2指定的字串連線到str1指定的字串後面,結果儲存在指定的字元陣列中,str1指定的字串原來最後面的 0 被取消。因為要把str2接在str1後面,所以應該多給str1分配一些記憶體。include incl...

C 兩個字串相加

題意 given two binary strings,return their sum also a binary string for example,a 11 b 1 return 100 思路 思路 對於兩個string a,b從後往前取值,若取值為空則賦值為0.設定進製符號flag 若a ...