C 物件模型 4 指標與字串

2021-09-08 06:43:05 字數 2420 閱讀 4005

開始之前必須明確strlen的含義,原型為size_t strlen( char *str ); strlen返回字串的長度,即null(\0)之前的字元的數量。

一 char* 與 char

例項加注釋:

void

testcharpointerandarray()

字串都以\0結尾,所以例如:

char

*c1 ="

abc"

;char

c2 =

"abc";,

使用strlen得到長度都為3,但是實際的儲存空間為strlen+1即3+1。

二 c中字串操作函式

c++的程式設計師對c中的字串指標操作的函式卻並不是相當的熟悉。而c中的這些字串的指標操作函式有的時候也是必須要面對的,比如我們的庫要提供c函式介面,保持向後相容和跨平台,還有我們經常使用一些第三方的庫中都或多或少的使用到了這些c中的指標操作函式,所以下面列出c的指標操作函式,幫助大家熟悉之。

1) memcpy/memset/memcmp

memcpy

原型:extern void *memcpy( void *to, const void *from, size_t count );

包含:#include 或或

功能:由src所指記憶體區域複製count個位元組到dest所指記憶體區域。

說明:src和dest所指記憶體區域不能重疊,函式返回指向dest的指標。

memset

原型:extern void* memset( void* buffer, int ch, size_t count );

包含:#include 或或

功能:把buffer所指記憶體區域的前count個位元組設定成字元c。

說明:返回指向buffer的指標。

memcmp

原型:extern int memcmp(const void *buffer1, const void *buffer2, size_t count );

包含:#include 或或

功能:比較記憶體區域buf1和buf2的前count個位元組。

說明:

當buf1buf2時,返回值》0

memchr

原型: extern void *memchr( const void *buffer, int ch, size_t count );

包含:#include 或或

功能:查詢ch在buffer中第一次出現的位置。

說明:如果發現返回指標,如果沒有返回null。

例項:void

testmemfunction()

2) strlen/strcpy/strcat/strcmp/strchr/strcoll/strstr/strtok/strtod/strtol

strcpy

char *strcpy(char *s1, const char *s2) 將字串s2複製到字串陣列s1中,返回s1的值

strcat

char *strcat(char *s1, const char *s2)

將字串s2新增到字串s1的後面。s2的第乙個字元重定義s1的null終止符。返回s1的值

strcmp

int strcmp(const char *s1, const char *s2)

比較字串s1和字串s2。函式在s1等於、小於或大於s2時分別返回0、小於0或者大於0的值

strchr

char *strchr(char * str,int c ); 在str中查詢c第一次出現的位置。

strstr

char *strstr(char *str,const char *strsearch );在string1中查詢string2第一次出現的位置。

strtok

char *strtok(char *strtoken,const char *strdelimit ); 分割字串。

例項:void

teststrfunction()

void

teststrfunction2()}

總結:

1)以mem開始的函式用來bytes的操作,所以需要指定長度,但是以str用來操作以\0結尾的字串,不需要指定長度。

2)對於unicode,相應的字串操作函式字首為wcs,例如wcscpy,wcscat,wcscmp,wcschr,wcsstr,wcstok等。

3)在vc中還提供了有安全檢測的字串函式字尾_s,例如strcpy_s,strcat_s,strcmp_s,wcscpy_s,wcscat_s,wcscmp_s等。

4)char*如果指向常量區,不能被修改,且此char*不需要delete。例如 char* pstr = "abc";。

三 std::string和std::wstring使用相當簡單哦!

四 完!

C 物件模型 4 指標與字串

開始之前必須明確strlen的含義,原型為size t strlen char str strlen返回字串的長度,即null 0 之前的字元的數量。一 char 與 char 例項加注釋 code void teststrfunction void teststrfunction2 總結 1 以m...

3 25指標與字串

建立與輸出 char str 10 hellow cout str 建立乙個指向字串的指標 c 11並不建議這樣使用 char p str 10 hellow cout p str 系統會認為這是乙個指向字元常量的字串指標,這種不允許修改的 一般使用 char p str 建立乙個char型別的指向...

34 指標與字串

1 字串指標 在c語言中,可以用兩種方法訪問乙個字串 1 字元陣列 char string i love china printf s n string 說明 和前面介紹的陣列屬性一樣,string是陣列名,它代表字元陣列的首位址。2 字串指標指向字串 char 變數名 字串內容 對指向字元變數的指...