輸入輸出: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,在最後不要加...