不帶n的只需要考慮p1的陣列是否足夠大不需要考慮『\0』的問題,帶n的需要考慮』\0』。
strlen int len=strlen§.:返回乙個int型別數值,即返回字串p的長度,『\0』不算做乙個長度。
strcpy: 把src所指向的字串複製到dest所指向的空間中,』\0』也會拷貝過去。
. char *strcpy(char *dest, const char *src);
引數:dest:目的字串首位址。
src:源字元首位址。
返回值:
成功:返回dest字串的首位址。
失敗:null。
注意:如果引數dest所指的記憶體空間不夠大,可能會造成緩衝溢位的錯誤情況。
例:char dest[20] = 「123456789」;
char src = 「hello world」;
strcpy(dest, src);
printf("%s\n", dest);
3. strncpy: 把src指向字串的前n個字元複製到dest所指向的空間中,是否拷貝結束符看指定的長度是否包含』\0』。
引數:dest:目的字串首位址。
src:源字元首位址。
n:指定需要拷貝字串個數。若n大於src長度則補齊長度
返回值:
成功:返回dest字串的首位址。
失敗:null。
例:char dest[20] ;
char src = 「hello world」;
strncpy(dest, src, 5);
printf("%s\n", dest);
dest[5] = 『\0』;
printf("%s\n", dest);
5. strcat:將src字串連線到dest的尾部,『\0』也會追加過去。
自己給自己追加程式會崩潰
char *strcat(char *dest, const char *src);
引數:dest:目的字串首位址。
src:源字元首位址。
返回值:
成功:返回dest字串的首位址。
失敗:null。
例:char str[20] = 「123」;
char *src = 「hello world」;
printf("%s\n", strcat(str, src));
6. strncat:將src字串前n個字元連線到dest的尾部(即從『\0』位置開始覆蓋),『\0』也會追加過去。
比如 char arr1[20]=「hello\0******」;
char arr2=「world」;
strncat(arr1,arr2,3); //陣列arr1變為:
arr1[20]=「hellowor\0***x」;
char *strncat(char *dest, const char *src, size_t n);
再如果是 strncat(arr1,arr2,8);追加的長度大於要追加的陣列大小,則追加完所有陣列的字元後補乙個『\0』就完事。 結果變為: arr1[20]=「helloworld『\0』x」;
引數:dest:目的字串首位址。
src:源字元首位址。
n:指定需要追加字串個數。
返回值:
成功:返回dest字串的首位址。
失敗:null
例:char str[20] = 「123」;
char *src = 「hello world」;
printf("%s\n", strncat(str, src, 5));
8. strcmp:字串比較函式。依次比較兩個字串的對應字元大小(『\0』的ascii碼值是0)
9. int strcmp(const char *s1, const char *s2);
.功能:比較 s1 和 s2 的大小,比較的是字元ascii碼大小。
引數:s1:字串1首位址
s2:字串2首位址
返回值:
相等:0
大於:>0 在不同作業系統strcmp結果會不同 返回ascii差值
小於:<0
例:int型 變數ret用來接收strcmp函式的返回值。
strcmp比較p1,p2兩個字串大小,若p1>p2,返回1;p1=p2,返回0;p1 0
小於: < 0
例:char *str1 = 「hello world」;
char *str2 = 「hello mike」;
if (strncmp(str1, str2, 5) == 0)
else if (strcmp(str1, 「hello world」) > 0)
else
14 atoi():
int atoi(const char *nptr);
功能:atoi()會掃瞄nptr字串,跳過前面的空格字元,直到遇到數字或正負號才開始做轉換,而遇到非數字或字串結束符(』\0』)才結束轉換,並將結果返回返回值。
引數:nptr:待轉換的字串
返回值:成功轉換後整數
類似的函式有:
atof():把乙個小數形式的字串轉化為乙個浮點數。
atol():將乙個字串轉化為long型別
char str1 = "-10";
int num1 = atoi(str1);
printf("num1 = %d\n", num1);
char str2 = "0.123";
double num2 = atof(str2);
printf("num2 = %lf\n", num2);
C語言常用字串函式
c 庫函式 strcat char strcat char dest,const char src 把 src 所指向的字串追加到 dest 所指向的字串的結尾 演示 strcat 函式的用法 char str1 100 char str2 100 gets str1 輸入abcd strcat s...
C 常用字串函式
1.變數.length 取字串長度 如 string str hello int len str.length len是自定義變數,str是字串的變數名 console.writeline len 輸出結果 5 2.變數.substring 引數1,引數2 擷取字串的一部分,引數1為左起始位數,引數...
C 常用字串函式
1.字串比較 字串.comparto 目標字串 a comparto b 2.查詢子串 字串.indexof 子串,查詢其實位置 字串.lastindexof 子串 最後一次出現的位置 str.indexof ab 0 3.插入子串 字串.insert 插入位置,插入子串 s.insert 2,ab...