字符串處理的一些常用函數

1.strrchr函數 /  strchr函數  /strstr函數

 

strrchr()函數的作用是:查找一個字符在另一個字符串中末次出現的位置,

並返回字符串中的這個位置的指針,可以輸出從這個位置起一直到字符串結束的所有字符。

如果未能找到指定字符,那麼函數將返回NULL。

 

函數原型是: char *strrchr(char *str, char c);

 

舉個例子:

 

 

strchr函數:

 

       與strrchr函數不同的是,它是查找一個字符在另一個字符串中首次出現的位置,相同的是它也是返回

 

       字符串中這個位置的指針。

 

函數原型:char *strchr(char *s,char c);

例子:

 

 

 

strstr函數

 

功能:與strchr函數有點類似的是strstr函數是查找子一個字符串在另一個字符串中首次出現的位置,而strchr是查找一個字

 

        符在另一個字符串中首次出現的位置,這點從函數名上也可以看的出來。最後都是返回該位置的指針。

 

原型:char *strstr(char *a, char *b);

 

例子:

 

 

 

 

2.substr函數

 

 功能 :返回一個從指定位置開始,並具有指定長度的子字符串。

 

函數原型:string substr(int pos = 0,int n = npos) const;//返回pos開始的n個字符組成的字符串

 

這個函數是string類的方法,所以要用string字符串來調用,由於一般用char*的情況也很多

於是下面例子故意加上了這兩種風格字符串相互轉化的情況。

 

例子:

 

 

 

3.find函數

 

功能:假如有兩個字符串A和B,要查找A字符串中是否包含有B字符串就可以用這個函數。不包含的時候

     

         函數返回-1.否則就返會字符串A中所包含的字符串B的第一個字符的索引。

 

函數原型:

int find(char c, int pos = 0) const;//從pos開始查找字符c在當前字符串的位置
int find(const char *s, int pos = 0) const;//從pos開始查找字符串s在當前串中的位置
int find(const char *s, int pos, int n) const;//從pos開始查找字符串s中前n個字符在當前串中的位置
int find(const string &s, int pos = 0) const;//從pos開始查找字符串s在當前串中的位置

 舉個例子:

 

 

 4.strncat函數  /  strcat函數

  原型:char *strncat(char *dest,char *src,int n);
       
  用法:#include <string.h>
 
  功能:把src所指字符串的前n個字符添加到dest結尾處(覆蓋dest結尾處的'/0')並添加'/0'。
 
  說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。
            返回指向dest的指針。

 

 strncat函數的例子:


 

strcat函數:是strncat函數的弱化版

 

  原型: char *strcat(char *dest,char *src);
       
  用法:#include <string.h>
 
  功能:把src所指字符串添加到dest結尾處(覆蓋dest結尾處的'/0')並添加'/0'。
 
  說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。
        返回指向dest的指針。

 

   例子:

 

 

 

5.memcpy函數  / strcpy函數  /memcmp函數

 

memcpy函數

 

     原型:void *memcpy(void *dest, void *src, unsigned int count);

     用法:#include <string.h>
 
     功能:由src所指內存區域複製count個字節到dest所指內存區域。
 
     說明:src和dest所指內存區域不能重疊,函數返回指向dest的指針。

 

 例子:

 

 

 

 

strcpy函數

 

  原型:char *strcpy(char *dest,char *src);
       
  用法:#include <string.h>
 
  功能:把src所指由NULL結束的字符串複製到dest所指的數組中。
 
  說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。
        返回指向dest的指針。

 

  例子:

 

 

memcmp函數

  

   原型:int memcmp(void *buf1, void *buf2, unsigned int count);

 用法:#include <string.h>

 功能:比較內存區域buf1和buf2的前count個字節

  

   說明:buf1>buf2時,返回值>0.一般爲1

            buf1<buf2時,返回值<0.一般爲-1

            buf1=buf2時,返回值=0.

 

   例子:

 

 

6.memset函數  /  bzero函數

 

memset函數

 

   原型:void *memset(void *buffer, char c, int count);
       
   用法:#include <string.h>
 
   功能:把buffer所指內存區域的前count個字節設置成字符c。
 
  說明:返回指向buffer的指針。

 

   例子:

  

   

 

 

bzero函數

 

     原型:void bzero(void *s, int n);

     用法:#include <string.h>
 
     功能:置字節字符串s的前n個字節爲零。
 
     說明:bzero無返回值。

 

     例子:

 

 

 7.strtok函數

 

  原型:char *strtok(char *s, char *delim);
       
  用法:#include <string.h>
 
  功能:分解字符串爲一組標記串。s爲要分解的字符串,delim爲分隔符字符串。
 
  說明:首次調用時,s必須指向要分解的字符串,隨後調用要把s設成NULL。
        strtok在s中查找包含在delim中的字符並用NULL('/0')來替換,直到找遍整個字符串。
        返回指向下一個標記串。當沒有標記串時則返回空字符NULL。

   例子:

   

   

 

 

就先寫這麼多了,以後碰到了再補上

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章