以下:摘自大佬csdn+自己體會
1、strcpy(a,b):乙個用來複製整個字串的庫函式
示例如下:
**:strcpy()函式詳解
strcat、strcpy、strcmp三種函式用法
char a[7]
="abcdef"
;char b[4]
="abc"
;//備註:字串最後乙個位元組存放的是乙個空字元「\0」,用來表示字串的結束
strcpy
(a,b)
;puts
(a); 輸出字串,相當於printf
("%s\n"
,a);
a這個陣列在第三行執行後裡面是什麼:是「abc\0ef」
還是「abc\0」 呢?
結果輸出的是abc\0;
為啥答案不是abc\0ef ?
(2)字串的特性:
字串最後乙個位元組存放的是乙個空字元——「\0」,用來表示字串的結束
因此,把b複製到a之後,b的空字元把複製後的字串隔斷(abc\0ef\0),最終,puts輸出abc。
附:puts()函式和printf()函式的區別
1.printf(
)函式是格式化輸出函式,書寫格式為 printf(
"《格式化字串》", 《參量表》);
其中格式化字串包括兩部分內容: 一部分是正常字元, 這些字元將按原樣輸出; 另一部分是格式化規定字元, 以"%"開始, 後跟乙個或幾個規定字元,用來確定輸出內容格式。
2.puts(
)函式用來向標準輸出裝置(螢幕)寫字串並換行。其呼叫格式為:puts(s)
; 其中s為字串變數(字串陣列名或字串指標)。相當於printf(
"%s", s)
;對了,還得加個換行符→printf(
"%s\n",s)
;對了,puts(
)函式只能輸出字串,不能輸出數值或進行格式變換。
還有printf顯示更清晰,puts執行更快。
2、strncpy(a,b,n)函式
(1)從第乙個字串的首位址開始覆蓋
(2)a字串是否存在取決於n指定的長度
以上面字元陣列a,b為例
示例如下:
int
main
(void
)
字串「abc」的長度在陣列b中占有四位(包括"\0")
① n《字串「」abc「的長度
n=
2輸出結果為:abcdfgi
② n=字串「」abc「的長度
n=4;
輸出:abc
因為第四位為字串結束識別符號"\0"
③ n>字串「」abc「的長度
n=
5輸出:abc
多出來的位數繼續補「\0」
3、strcat(a,b): 複製字串b,將b拼接在字串a後面。
示例如下:
char a[
100]
="i love "
;char b[
100]
="you"
;strcat_s
(a, b)
;puts
(a);
輸出:i love you
4、strstr(str1,str2):
用來判斷str2是否為str1的子串
若是,則返回str2在str1中首次出現的位址;若不是,null。
#include
#include
char uart2_buf[12]
="abstartdend"
;char mystr1[20]
=;char
*mystr = mystr1;
void
test_strstr()
intmain
(void
)
特別注意的是,字串返回後,str2與str1共用相同位址,乙個改另乙個跟著變。
#include
#include
char uart2_buf[12]
="abstartdend"
;char mystr1[20]
=;char
*mystr = mystr1;
void
clr_buf2
(void
)void
test_strstr()
intmain
(void
)輸出:mystr= (相當於沒有任何輸出結果,只有列印而已)
4、memset()庫函式; 標頭檔案 #include
對指定區域進行初始化
2、memset中的第三個引數一定要使用sizeof操作符,因為每個系統下對型別長度的定義可能不一樣。
示例如下:
(1)對整形陣列進行初始化
//對整形陣列進行初始化
#include
//sizeof是個運算子,它的結果是字串在記憶體中的所佔位元組大小,它要把\0算進去的。
#include
//strlen函式的意思是測試字串的字元長度,不含字串結束標誌
#include
intmain
(void
)printf
("\n");
}輸出:0000000000
(2)對字元陣列進行初始化
int
main
(void
)printf
("\n");
}輸出:
無任何資料
(3)對字元指標所指區域初始化,必須已經分配記憶體
int
main
(void
)printf
("\n");
free
(pbuf)
; pbuf =
null;}
}`輸出:
無任何資料輸出 史上最詳細的C 函式指標
每乙個函式都占用一段記憶體單元,它們有乙個起始位址,指向函式入口位址的指標稱為函式指標 指向函式的指標變數的一般定義形式為 資料型別 指標變數名 參數列 1 函式指標的定義形式中的資料型別是指函式的返回值的型別。2 區分下面兩個語句 int p int a,int b p是乙個指向函式的指標變數,所...
簡單的字串處理
題目背景 某蒟蒻迷上了 小書童 有一天登陸時忘記密碼了 他沒繫結郵箱or手機 於是便把問題拋給了神犇你。題目描述 蒟蒻雖然忘記密碼,但他還記得密碼是由一串字母組成。且密碼是由一串字母每個向後移動n為形成。z的下乙個字母是a,如此迴圈。他現在找到了移動前的那串字母及n,請你求出密碼。均為小寫 輸入輸出...
簡單的字串處理
1.根據字數計算高度 if string length 0 cgsize size string boundingrectwithsize cgsizemake kmainscreenwidth,0 options nsstringdrawingtruncateslastvisibleline ns...