常用C C 字串處理總結

2021-06-28 17:17:26 字數 3869 閱讀 9060

輸入輸出:cin,cout,getchar,gets,putchar,puts,printf,scanf

格式化:sprintf,sprintf_s,wsprintf,wsprintf_s,swprintf,swprintf_s (請仔細比較這幾組函式的區別)

格式化值:

%% -返回百分號

%b –返回二進位制數

%c –返回與ascii值相對應的字元

%d –帶有正負號的十進位制數

%e –科學計數符號(如:1.2e+2)

%u –不帶正負號的十進位制數.%ul 不帶符號的長整型

%f – 浮點資料(本地設定)

%f –浮點資料(非本地設定)

%o –八進位制數

%s –字串

%x –十六進製制數(小寫字母) 例如:sprintf(s, "%#010x", 128); //產生"0x00000080"

%x –十六進製制數(大寫字母)

char*字串處理:strlen,strcpy,strcat,strcmp

char*字串處理:

char * strchar(const

char * s, int c) ;返回指向字串s中字元c首次出現的指標,沒有返回null

char * strrchar(const

char * s, int c) ;返回指向字串s中字元c最後一次出現的指標,沒有返回null

char * strstr(const

char * s1, const

char * s2) ;返回指向字串s1中首次出現s2位置的指標,無返回null

size_t strspn(const

char * s1, const

char * s2) ;返回s1中只包含s2中字元的起始段的長度

size_t strcspn(const

char * s1, const

char * s2) ;返回s1中不包含s2中字元的起始段的長度

char * strpbrk(const

char * s1, const

char * s2) ;返回指向s1中首次出現s2中字元位置的指標,沒有返回null

char * strtok(char * s1, const

char * s2) 將s1用s2中包含的字元分開記號拆散為字串。(注意:strtok會修改輸入的字串,故請拷貝後再呼叫。)

string字串處理:

長度:str.length()

尺寸:str.size()

比較:str1.compare(str2)

連線:str1+=str2

提取:str2=str2.substr(pos1)

查詢:pos=str1.find(str2)

插入:str1.insert(pos1,str2);

替換:str1.replace(pos1,str2);

刪除:str1.erase(pos,len)

清除:str.clear()

字串轉數字:

atoi(將字串轉換成整型數)

atof(將字串轉換成浮點型數)

atol(將字串轉換成長整型數)

strtod(將字串轉換成雙精度浮點數)

strtol(將字串轉換成長整型數)

strtoul(將字串轉換成無符號長整型數)

字元判斷:

isalnum:check if

character

is alphanumeric (function)

isalpha :check if

character

is alphabetic (function)

iscntrl :check if

character

is a control character (function)

isdigit :check if

character

is decimal digit (function)

isgraph :check if

character has graphical representation (function )

islower :check if

character

is lowercase letter (function)

isprint :check if

character

is printable (function)

ispunct :check if

character

is a punctuation character (function)

isspace :check if

character

is a white-space (function )--空白字元:新行符\n, 空格,回車''\r",水平製表符"\t", 垂直製表符"\v"

isupper :check if

character

is uppercase letter (function)

isxdigit :check if

character

is hexadecimal digit (function)

tolower:convert uppercase letter to lowercase (function)

toupper:convert lowercase letter to uppercase (function)

記憶體操作:

void * memcpy(void * s1, const

void * s2, size_t n) ; 將s2中連續n個位元組的資料拷貝到s1中 ,注意s1和s2記憶體區域不能重疊

void * memmve(void * s1, const

void * s2, size_t n) ; 將s2中連續n個位元組的資料拷貝到s1中 ,但s1和s2記憶體區域可以重疊

intmemcmp(const

void * s1, const

void * s2, size_t n) ; 比較記憶體區域s1和s2的前n個位元組,<、=、>分別返回負值、0、正值。

void * memchr(const

void * s, int c, size_t n) ; 返回指向s1物件的前n個位元組查詢出現c的位置的指標,沒有返回null

void * memset(void * s, int c, size_t n) ; 將c拷貝到s1中的前n個位元組中,常用於字串初始化,初始化也可以寫char *str=

格式轉換:

char*到string:可以直接賦值

string轉char*:str.c_str()

char*和wchar_t*互**比較複雜,綜合運用多種函式,總之微軟的不標準的東西用著就是不爽,下面有個摘自網路的**

#include

#include

#include

char* wchartochar(const wchar_t* wp)

wchar_t* chartowchar(const

char* c)

以上的函式都在string.h string stdio.h stdlib.h等標頭檔案裡面,用的時候可以再查

盡量使用c/c++標準庫裡面的函式吧,微軟的那些不標準的東西真心看著煩,不推薦用,如果是做qt,cocos2d等第三方框架的開發,建議用那個框架自己封裝的字串類來操作。

常用C C 字串處理總結

輸入輸出 cin,cout,getchar,gets,putchar,puts,printf,scanf 格式化 sprintf,sprintf s,wsprintf,wsprintf s,swprintf,swprintf s 請仔細比較這幾組函式的區別 格式化值 char 字串處理 strlen...

C C 字串處理函式

c include 1.字串長度 extern int strlen char s 返回s的長度,不包括結束符null 2.字串比較 extern int strcmp char s1,char s2 extern int strncmp char s1,char s2,int n 比較字串s1和s...

C C 字串處理函式

c char st 100 1.字串長度 strlen st 2.字串比較 strcmp st1,st2 strncmp st1,st2,n 把st1,st2的前n個進行比較。3.附加 strcat st1,st2 strncat st1,st2,n n表示連線上st2的前n個給st1,在最後不要加...