字串基本處理演算法

2021-07-03 12:33:13 字數 1352 閱讀 5253

最近想寫寫字串處理方面的東西。前面已經寫寫了字串分割函式的實現。下面再將幾種常見的字串處理演算法實現了下。

第乙個為統計字串的長度函式,很簡單,定義乙個指標指向字串首位,然後從頭遍歷到字串的尾部,遇到'\0'就停止,同時定義乙個變數累加。下面直接貼**:

int stringlen(char *str)

第二函式為字串拷貝函式strcpy的實現,一般思路就是定義兩個指標,乙個指標指向源字串首位,另乙個指向待複製的字串陣列,將源字串的字元依次賦值給目的字串。這裡實現了兩個版本的alpha版本的就是簡單的複製,beta版本加入了記憶體重疊檢測,檢查目的與源的長度是否匹配,這個版本的更加安全。**實現如下:

char* strcopyalpha( char *src,char *dst)

while(*src!='\0');

return ret;

}char* strcopybeta(char *src,char *dst)

else

return ret;

}

第三個函式是字串反轉函式的實現,由於本函式實現的時候,是將字元互換,所以先定義了乙個字元互換函式swap(char *str,int i,int j)。這裡也實現兩個版本的函式,alpha版本的函式只是簡單地進行反轉,不考慮單詞可讀性的問題,演算法的主要思想就是,兩個動態座標begin與end。begin賦值為0,end賦值為字串的長度減一;然後以begin與end作為字元陣列的下標,並互換,然後begin後移,end前移,終止條件為begin與end相等。

字元互換函式:

void swap(char *str,int i,int j)

字串反轉函式:

char* reversestralpha(char *str,int begin,int end)

return ret;

}char* reversestrbeta(char *str)

count=0;

} printf("%c:%d\n",str[flag],max);

return max;

}int maxcharbeta(char *str)

; int i;

int length=stringlen(str);

int index;

int max,min,maxflag,minflag;

for(i=0;imax)

}/**find min character**/

if(alpha[i]!=0)

Python字串處理演算法 一

cic 內部的核心軟體系統都是搭建在 linux 上的,為了方便程式間的協同操作,我們還編寫了很多 shell script 儘管類似 grep,sort,cut 之類的工具用起來很爽很強大,但是 shell 指令碼並不適於描述稍微複雜些的邏輯跟演算法,譬如我曾經寫過這樣的 猜猜它是做什麼的 tex...

演算法歸納系列 字串處理演算法

常見思路是在s中遍歷尋找str,演算法複雜度為o len str len s kmp演算法能將複雜度降低到o len s 級別,kmp演算法的思想主要是通過求匹配字串每個位置的最長重複字首,每次匹配失敗之後就直接用next陣列中的最長匹配字首那一部分去匹配,而不用重新匹配。vectorgetnext...

Python基本語句 字串的基本處理

每個語言中,字串的處理都是一門大學問。單引號 雙引號都可以 word 字串 sentence 這是乙個句子 使用三引號 paragraph 這是乙個段落 可以由多行組成 輸出單引號雙引號的方法 若輸出的字串中包含單引號,可以使用雙引號來定義。反之亦可 使用轉義字元輸出。str1 maanshan p...