c語言中對字元和字串的處理很多,但是c語言本身沒有字串型別,所以字串通常放在常量字串中或者是字元陣列中,而常量字串適用於不做修改的字串,所以我們在c語言中一般操作的就是字元陣列;字串
字串就是零個或者多個字元組成的序列,該序列以nul位元組結尾;
字串函式
1、求字串長度
size_t strlen
(const
char
* str)
;1.字串都是以『\0』為結束標誌,strlen返回的是『\0』之前的字元個數,不包括『\0』
2.引數指向的字串必須以『\0』結尾。
3.返回值為size_t無符號。
2、長度不受限制的字串函式
char
*strcpy
(char
* destination,
const
char
* source )
//字串拷貝
1.源字串必須以『\0』結尾。
2.會將源字串中的『\0』拷貝至目標空間中。
3.目標空間必須夠大,能放下源字串。
char
*strcat
(char
* destination,
const
char
* source)
//字串拼接
1.源字串必須以『\0』結尾。
2.目標空間必須夠大,能放下源字串。
3.注意不能自己給自己追加。
intstrcmp
(const
char
* str1,
const
char
* str2 )
//字串比較
1.第乙個大於第二個,返回大於0的數字。
2.第乙個等於第二個,返回0。
3.第乙個小於第二個,返回小於0的數字。
3、長度不受限制的字串函式
char
*strncpy
(char
* destination,
const
char
* source, size_t num )
1.拷貝num個字元從源字串到目標空間。
2.如果源字串的長度小於num,則拷貝完源字串之後,在目標的後邊追加0,直到num個。
3.從目標字串頭部開始拷貝。
char
*strncat
(char
* destination,
const
char
* source, size_t num )
1.拷貝num個字元從源字串到目標空間。
2.以『\0』位結束標誌,及時字串長度小於num。
3.從目標字串頭部開始拷貝。
intstrncmp
(const
char
* str1,
const
char
* str2, size_t num)
1.比較到出現兩個字元不一樣或者乙個字串結束或者num個字元比較完。
2.返回值同strcmp相同。
4、字串查詢
char
*strstr
(const
char
*str1,
const
char
* str2)
1.返回值,成功返回str2第一次在str1中的指標、失敗返回null。
char
*strtok
(char
* str,
const
char
* sep )
//分割字串
1.sep引數是個字串,定義了用作分隔符的字元集合
2.第乙個引數指定乙個字串,它包含了0個或者多個由sep字串中乙個或者多個分隔符分割的標記。
3.strtok函式找到str中的下乙個標記,並將其用 \0 結尾,返回乙個指向這個標記的指標。(這個操作會改變字串,建議臨時拷貝)。
4.strtok函式的第乙個引數不為 null ,函式將找到str中第乙個標記,strtok函式將儲存它在字串中的位置。
5.strtok函式的第乙個引數為 null ,函式將在同乙個字串中被儲存的位置開始,查詢下乙個標記。
6.如果字串中不存在更多的標記,則返回 null 指標。
5、錯誤資訊報告
char
*strerror
(int errnum)
;//返回錯誤碼,所對應資訊
1.使用前包含標頭檔案errno.h
6、字元分類函式和字元轉換
int
islower
(int c)
//檢測是否是小寫字母
intisupper
(int c)
//檢測是否是大寫字母
intisalpha
(int c)
//檢測是否是字母
intisspace
(int c)
//檢測空白字元
字元轉換:
inttolower
(int c)
//轉換為小寫
inttoupper
(int c)
//轉換為大寫
上面羅列一些我常用的,詳細可以在這裡檢視字元分類函式
模擬實現字元函式
1、strlen求字串長度
//方式一:計數
size_t my_strlen
(char
* str)
return count;
}//方式二:不建立臨時變數
size_t my_strlen
(char
* str)
return1+
my_strlen
(str+1)
;}//方式三:指標 - 指標
size_t my_strlen
(char
* str)
return p-str;
}
2、模擬實現strcpy
char
*my_strcpy
(char
*des,
const
char
*src)
return ret;
}
3、模擬實現strcat
char
*my_strcat
(char
*des,
char
*src)
while((
*des++
=*src++))
//拷貝將'\0』也會拷貝
return ret;
}
4、模擬實現strstr
char
*my_strstr
(const
char
*str1,
const
char
*str2)
char
*cp =
(char
*)str1;
char
*substr =
(char
*)str2;
char
*s1 =
null
;while
(*cp)if(
*substr == 』\0')
cp++;}
return
null
;}
5、模擬實現strcmp
//思路:從第乙個字元比較。若相等,繼續向移動乙個,若不相等則,進行比較;
intmy_strcmp
(const
char
* src,
const
char
* des)
ret =
*src -
*des;
if(ret <0)
return-1
;return1;
}
字串函式實現
本文介紹了strcpy,strcnpy,atoi,itoa,strcmp,strncmp,字串逆置的c語言實現 比較簡單,或許存在bug 1.strcpy,strncpy 2.字串的逆置 void reverse char s q 這個時候q是指向 0 的,所以需要往前移動一下 while q p ...
字串函式實現
1.memmove void memmove void dest,const void src,size t count memmove用於從source拷貝count個字元到dest,如果目標區域和源區域有重疊的話,memmove能夠保證在源串覆蓋之前將重疊區域的位元組拷貝到目標區域中 void ...
認識字串
字串是python中常用的資料型別。我們一般使用引號來建立字串。建立字串很簡單,只要為變數分配乙個值即可。a hello world b abcdefg print type a print type b name1 tom name2 rose name3 tom name4 rose a i a...