C字符串操作函數(shù)的實現(xiàn)詳細解析
更新時間:2013年08月13日 09:23:45 投稿:jingxian
以下是對C語言中字符串操作函數(shù)的實現(xiàn)進行了詳細的分析介紹,需要的朋友可以過來參考下
1. strlen(),計算字符串長度
int strlen(const char string) { int i=0; while(string[i]) i++; return i; }
2. strcpy(), 字符串拷貝.
char *strcpy(char *destination, const char *source) { while(*destinaton++=*source++); return (destination-1); }
3. strcat(), 字符串的連接.
char *strcat(char *target,const char *source) { char *original=target; while(*target) target++; // Find the end of the string while(*target++=*source++); return(original); }
4. streql(), 判斷兩個字符串是否相等.
int streql(char *str1,char *str2) { while((*str1==*str2)&&(*str1)) { str1++; str2++; } return((*str1==NULL)&&(*str2==NULL)); }
5. strchr(), 在字符串中查找某個字符.
char *strchr(const char *string,int letter) { while((*string!=letter)&(*string)) string++; return (string); }
6. chrcnt(), 計算某個字符在字符串中出現(xiàn)的次數(shù).
int chrcnt(const char *string,int letter) { int count=0; while(*string) if(*string==letter)count++; return count; }
7. strcmp(), 判斷兩個字符串是否相等.
int strcmp(const char *str1,const char *str2) { while((*str1==*str2)&&(*str1)) { str1++; str2++; } if((*str1==*str2)&&(!*str1)) //Same strings return o; else if((*str1)&&(!*str2)) //Same but str1 longer return -1; else if((*str2)&&(!*str1)) //Same but str2 longer else return((*str1>*str2)?-1:1); }
相關(guān)文章
C語言的數(shù)據(jù)結(jié)構(gòu)之樹、森連、二叉樹之間的轉(zhuǎn)換圖解
這篇文章主要介紹了C語言的數(shù)據(jù)結(jié)構(gòu)之樹、森連、二叉樹之間的轉(zhuǎn)換詳解,數(shù)據(jù)是信息的載體,是描述客觀事物屬性的數(shù)、字符以及所有能輸入到計算機中并被程序識別和處理的符號的集合,需要的朋友可以參考下2023-07-07C語言回溯法 實現(xiàn)組合數(shù) 從N個數(shù)中選擇M個數(shù)
在平時的算法的題目中,時常會遇到組合數(shù)相關(guān)的問題,暴力枚舉。在N個數(shù)中挑選M個數(shù)出來。利用for循環(huán)也可以處理,但是可拓展性不強,于是寫這個模板供以后參考2018-08-08深入探究C++中的容器適配器與仿函數(shù)技術(shù)
C++中的容器適配器和仿函數(shù)是實現(xiàn)數(shù)據(jù)結(jié)構(gòu)與算法的重要技術(shù),容器適配器可以將一個容器轉(zhuǎn)換為另一個形式,仿函數(shù)則可以自定義數(shù)據(jù)類型的比較、排序、計算等行為,提高程序的靈活性和可重用性2023-04-04