- 相關(guān)推薦
C語言字符串操作函數(shù)和常用的實(shí)現(xiàn)
C語言字符串操作有很多,字符中的函數(shù)和常用的實(shí)現(xiàn)有哪些呢?下面是小編特別為需要實(shí)現(xiàn)編程學(xué)習(xí)的朋友收集整理的,歡迎大家閱讀!更多相關(guān)信息請(qǐng)關(guān)注相關(guān)欄目!
面試官很喜歡讓求職者寫一些常用庫(kù)函數(shù)的實(shí)現(xiàn),有很多是和字符串相關(guān)的,有一些是關(guān)于內(nèi)存拷貝的。一般,常會(huì)讓寫的函數(shù)有以下幾個(gè):
strcpy , strncpy, memcpy。
memset一般不會(huì)讓去寫,但這個(gè)函數(shù)也很有特點(diǎn),有很多容易用錯(cuò)的地方。一并總結(jié)吧。字符串操作函數(shù) atof()將字符串轉(zhuǎn)換成浮點(diǎn)數(shù)atoi()將字符串轉(zhuǎn)換成整數(shù)atol()將字符串轉(zhuǎn)換成長(zhǎng)整型數(shù)gcvt()將浮點(diǎn)型數(shù)轉(zhuǎn)換為字符串(四舍五入)strtod()將字符串轉(zhuǎn)換成浮點(diǎn)數(shù)strtol()將字符串轉(zhuǎn)換成長(zhǎng)整型數(shù)strtoul()將字符串轉(zhuǎn)換成無符號(hào)長(zhǎng)整型數(shù)toascii()將整數(shù)轉(zhuǎn)換成合法的ASCII碼字符tolower()將大寫字母轉(zhuǎn)換為小寫字母toupper()將小寫字母轉(zhuǎn)換為大寫字母index()查找字符串并返回首次出現(xiàn)的位置rindex()查找字符串并返回最后一次出現(xiàn)的位置strcasecmp()判斷字符串是否相等(忽略大小寫)strcat()連接字符串strcmp()根據(jù)ASCII碼比較字符串strcoll()根據(jù)環(huán)境變量LC_COLLATE來比較字符串strcpy()復(fù)制字符串strcspn()查找字符串并返回首次出現(xiàn)的位置strchr()查找字符串并返回首次出現(xiàn)該字符的地址strdup()復(fù)制字符串strlen()返回字符串長(zhǎng)度strncasecmp()比較字符串的前n個(gè)字符strncat()拼接字符串(取前n個(gè)字符)strncpy()復(fù)制字符串(取前n個(gè)字符)strpbrk()定位字符串中第一個(gè)出現(xiàn)的指定字符strrchr()定位字符串中最后出現(xiàn)的指定字符strspn()返回從字符串開頭連續(xù)包含特定字符的字符數(shù)目strstr()返回指定字符串第一次出現(xiàn)的地址strtok()字符串分割
1. strcpy
strcpy函數(shù)的原型是:
char * strcpy(char* dest, const char* src)
strcpy的實(shí)現(xiàn)經(jīng)常要注意的細(xì)節(jié)是:
(1)判斷地址是否為空,個(gè)人感覺可以使用斷言
(2)參數(shù)只有兩個(gè)地址,沒有拷貝的長(zhǎng)度。拷貝到