C語言入門 查詢子串

2021-08-06 03:15:30 字數 886 閱讀 4877

查詢子串:輸入兩個字串s和t,在字串s中查詢子串t,輸出起始位置,若不存在,則輸出-1.要求自定義函式char*  search(char * s,char * t)返回子串t的首位址,若未找到,則返回null。試編寫相應程式。

#include #include #include char* search(char*s,char*t)

else

break;

} if((p=search(s,t))!=null)

else

printf("-1\n\n"); //題目要求沒有找到則輸出-1

free(s);

free(t);

} return 0;

}

用了malloc和realloc來實現動態記憶體分配從而實現輸入字元個數不再受陣列大小限制(記憶體足夠的話),並且考慮到子串t可能因為超出s的個數而出錯做了個容錯判斷,總體上加了迴圈實現迴圈輸入並設定了乙個退出程式出口。這裡所有用動態分配的指標全部都及時釋放了不會因為迴圈次數的增多而導致記憶體占用增大。由於realloc動態分配操作較慢,此程式還可以做優化,比如先開闢10字元的空間,每輸入10個字元後再多開闢10字元空間,程式執行速度可以比此程式更快。(但對於這麼一點可以忽略不計( ̄▽ ̄)~*)自定義函式部分使用了從被查詢串s第乙個字元開始,與t串的字元逐個比較的方法來查詢,目前也只能想到了這種查詢方法。結果:

查詢子串(C語言)PTA

本題要求實現乙個字串查詢的簡單函式。函式介面定義 char search char s,char t 函式search在字串s中查詢子串t,返回子串t在s中的首位址。若未找到,則返回null。裁判測試程式樣例 include define maxs 30 char search char s,cha...

c 實驗3 6 3 查詢子串

6 3 查詢子串 20 分 本題要求實現乙個字串查詢的簡單函式。函式介面定義 char search char s,char t 函式search在字串s中查詢子串t,返回子串t在s中的首位址。若未找到,則返回null。裁判測試程式樣例 include define maxs 30 char sea...

C語言 最長回文子串

描述 輸入乙個字串,求其中最長回文子串。子串的含義是 在字串中連續出現得字串片段。回文的含義是,正著看和倒著看是相同的,如abba何abbebba。在判斷時要求忽略所有的標點和空格,且忽略大小寫。但輸出時按原樣輸出 首尾不要輸出多餘的字串 輸入字串長度大於等於1小於等於5000.且單獨佔一行。輸入 ...