《C和指標》 字串操作補 字串記憶體操作

2021-07-30 02:33:38 字數 1910 閱讀 8236

1.對於*string++!='\0',它其實等價於:

*string!='\0'; 

string++;

2.對於 strcpy函式,如果要複製的字串比老字串短,由於新字串是以nul(即』\0』)結尾,所以老字串最後剩餘的幾個字元也會被有效地刪除。

如:

char message[ ]=="original message";

strcpy(message,"different");

此時message=」different」

3.同樣使用strcpy和strcat時,目標字元陣列的空間要足以容納需要複製的字串。

這些函式都在#include

1.void *memcpy(void *dst,void const *src,size_t length);

其實就是從src的起始位置複製length個元素到dst的記憶體起始位置

例子:

#include 

#include

struct person, person_copy;

int main()

輸出:

person_copy: pierre de fermat, 46

2.void *memmove(void *dst,void const *src,size_t length);

移動src開始的length個元素移動到dst開始的位置

例子:

/* memmove example */

#include

#include

int main ()

輸出:

memmove can be very very useful.

3.int *memcmp(void const *a,void const *b,size_t length);

a>b,返回值大於0

a=b,返回值等於0

a

/* memcmp example */

#include

#include

int main ()

輸出:

『dwgaotp12df0』 is greater than 『dwgaotp12df0』.

4.void *memchr(void const *a,int ch,size_t length);

從a開始的length元素個數中找ch出現的第乙個位置

例子:

/* memchr example */

#include 

#include

int main()

輸出:

『p』 found at position 5.

5.void * memset ( void * a, int ch, size_t length );

從a的開始的length元素都設定為值ch。

例子:

/* memset example */

#include

#include

int main()

輸出:

—— every programmer should know memset!

字串,字串陣列,字串指標!!

字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...

C 字元 字串 字元陣列 字串指標 指標陣列

一 c 字元 字串 字元陣列 字串指標 指標陣列 前言 一 字元指標 字元陣列 二 字串指標 三 字串 指標陣列 四 常用方法 參考為了深入理解c 並時常回顧學過的知識點,對c 知識點進行記錄總結。參考1字元指標的儲存方式 字元指標變數本身是乙個變數,用於存放字元 字串的首位址。字串本身是存放在以該...

字串指標操作

char s abc char ptr abc cout s cout s scout s scout s 1 s 1 cout s 1 s 1 cout s 0 s 0 cout s 0 void s 0 cout s 0 s 0 printf p n s 0 0061ff1c cout s 1 ...