1、字符串長度strlen()
原型爲:
size_tstrlen(
const char *str
);//size_t是_int64或者unsignedint,取決於平臺環境
注意:strlen得到的是除字符串結束標記(string terminator / nullcharacter)外的所有字符的個數.
2、字符串大小寫轉換strupr、strlwr
原型爲:
char *strupr( char *str ); |
char *strlwr( |
返回值和函數的參數一樣.
3、字符串複製函數strcpy、strncpy、strcpy_s
原型爲
char *strcpy(char*strDestination,constchar*strSource);
char *strncpy(char*strDest,constchar*strSource,size_t count);
errno_t strcpy_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
前兩個函數分別返回strDestination和strDest.最後一個返回錯誤信息.
strncpy函數可以控制需要複製的字符個數,程序員可以通過這個參數提高程序的安全性,不過在VC2005及以上版本中仍然會有一個警告,因爲如果程序員自身在設置這個參數時出錯的話(比如設置的字符個數超出緩衝區可以容納的字符個數),這個函數還是會像strcpy一樣執行。
strcpy_s函數需要緩衝區可以容納的字符個數作爲其參數之一,這樣可以幫助程序員檢查複製時的安全性,如果緩衝區容量不足,程序在運行時將拋出異常。這樣的做法在字符串複製時安全性是最高的(不過也需要程序員準確表示出緩衝區的大小)。同樣我們也可以通過assert的方法來提高使用strcpy和strncpy時的安全性。strcpy_s函數是VC++中推薦的安全函數.
4、字符串比較函數strcmp、_stricmp
int strcmp(constchar*string1,constchar*string2);
函數返回string1和string2在詞典中(如果將兩個字符串按詞典索引順序放入詞典中的話)的順序關係.如下
Value |
Relationship of string1 to string2 |
< 0 |
string1 less thanstring2 |
0 |
string1 identical tostring2 |
> 0 |
string1 greater thanstring2 |
_stricmp對字符串中字母的大小寫不敏感(insensitive).
5、字符串連接函數strcat、strncat
char *strcat(
char *strDestination, ); |
char *strncat( |
strncat中的count參數指明要附加的字符個數,如果count >strlen(strSource) + 1,count會被strlen(strSource)+ 1取代。
6、其他不常用函數,包括將字符串轉換成數字的函數、字符檢測函數、字符大小寫轉換函數等。