一、求字串長度的函式
strlen
二、長度不受限制的字串函式
strcpy
strcmp
strcat
三、長度受限制的字串函式
strncpy
strncat
strncmp
四、字串查詢
strstr
strtok
五、錯誤資訊報告
strerror
一、求字串長度的函式
strlen
注意:1.strlen函式返回的是字串中'\0'前面出現的字元個數(不包含'\0')
2.該函式的引數型別是乙個char型別的指標,返回值是size_t(無符號整形)
3.因為返回值是size_t,所以不能用函式的返回值相比較或做運算
(挖個坑) strlen的模擬實現(1.計數器的方式 2.遞迴的方式 3.指標減去指標的方式)
二、長度不受限制的字串函式
1.字串拷貝函式
strcpy
注意:1.要保證目標空間足夠大
2.目標空間必須可變,因此不能在第乙個引數前加const
引數型別:1.char *strdestination
2.char *strsource
返回型別:char*
strcpy的模擬實現
普通版(已引標頭檔案):
//strcpy的模擬實現
void my_strcpy(char *dest, char *src)
*dest = *src;
}int main()
高階版:
//strcpy的模擬實現
#include#includechar* my_strcpy(char *dest,const char *src)
return ret;//返回目標空間的起始位址
}int main()
2.字串追加函式
strcat
注意:1.要追加的目標空間必須足夠大
2.要追加的空間必須可修改
3.目標字串和源字串必須要有'\0'
4.不能自己給自己追加
引數:1.char *strdestination
2.char *strsource
返回型別:char*
模擬實現
//strcat的模擬實現
#includechar* my_strcat(char *dest, const char *src)
//2.追加
while (*dest++ = *src++);
return ret;
}int main()
3.字串比較函式
strcmp
注意:1.比較的是對應的字元的ascii碼值,不是比較字串長度
2.前者》後者,返回乙個》0的數;前者=後者,返回0;前者《後者,返回乙個<0的數
引數:1.char *str1
2.char *str2
返回型別:int
模擬實現
//strcmp的模擬實現
#includeint my_strcmp(const char *s1, const char *s2)
return *s1 - *s2;
}int main()
三、長度受限制的字串函式(與受限制的函式相比多了乙個引數size_t count,用來記錄要操作的字元個數)
與長度不受限制的函式差不多,較簡單,不做過多說明
四、字串查詢函式
1.strstr(查詢子串)
能找到的情況:
//strstr查詢子串函式
#includeint main()
判斷能否找到的情況:
//strstr查詢子串函式
#includeint main()
模擬實現(難點)
//strstr模擬實現
#includechar* my_strstr(const char *s1,const char *s2)
if (*p2 == '\0')
return (char*)cp;
cp++;
} return null;
}int main()
2.strtok(切割字串)
char *
strtok
( char *
str,
const
char *
sep);
引數:1.要切割的字串
2.分割標記
大致用法如下:
//strtok
#includeint main()
; char p[30] = ".@";
strcpy(arr2, arr1);//將arr1拷貝到arr2,使得arr1得以保留,我們操作arr2
char *ret;//接收strtok函式的返回值,為乙個指標
//用迴圈的方式列印,第一次呼叫的時候第乙個引數傳參要傳字串,之後只用傳空指標就可以
for (ret = strtok(arr2,p); ret != null; ret = strtok(null, p))
return 0;
}
strtok函式的古怪之處在於它第一次呼叫的時候第乙個引數傳參要傳字串,而之後只用傳空指標,這是static的功勞,它幫助strtok函式每次呼叫之後都能保留原來指標的位置,而它開闢的記憶體不會隨著呼叫的結束而銷毀。
五、錯誤報告函式
字串相關函式
strcmp 比較字串 strcmpi 忽略大小寫比較字串 upper 轉換為大寫 blanks 產生空字串 strmatch 查詢匹配的字串 strjust 對齊字元陣列,包括左對齊,右對齊和居中 strrep 替換字串 strncmp 比較字串的前n個字元 lower 轉換為小寫 deblank...
字串相關函式
1.模擬實現strcpystrcpy str1,str2 函式是把從str2位址開始且含有null結束符的字串複製到以str1開始的位址空間中,而且str2和str1所指記憶體區域不可以重疊。這就要求str1必須有足夠的空間來容納str2的字串。模擬實現strcpy 0 也會被拷貝進去,返回值為ch...
字串相關函式整理
字串逆轉函式 1 可用標頭檔案裡的reverse函式,函式使用方法 string str reverse str.begin str.end 2 使用標頭檔案中的strrev函式,函式使用方法 string str strrev str 讀取字串 1 cin 2 cin.get 使用方法一 只能讀取...