c++:MFC _cstring.h库常用函数
這里寫自定義目錄標題
- 函數介紹
- 示例
- 1.字符串復制
- 1.1.strcpy
- 1.2. strncpy
- 2.字符串連接
- 2.1. strcat
- 2.2. strncat
- 3 字符串比較
- 3.2 Compare函數使用
- 4 字符串查找
- 4.1 strchr
- 5.其他函數
- 5.1字符串長度
- 5.2 改變連續一段字符的值
函數介紹
1.strcpy 字符串拷貝:charstrcpy(char dest, constchar* src );
2.strncpy 字符串固定字符拷貝:charstrncpy(char dest,constchar* src, size_t num );
3.strcat 字符串連接:char * strcat ( char * dest, const char * src);
4.strncat 字符串固定字符連接char * strncat ( char * dest, const char * src, size_t num );
5.strcmp 字符串比較:int strcmp ( const char * str1, const char * str2 );
6.strchr 字符串中字符查找:const char * strchr ( const char * str, int character );
7.strstr 字符串中字符串查找:const char * strstr ( const char * str1, const char * str2 );
8.strlen 字符串長度:size_t strlen ( const char * str );
9.memset 字符串初始化或者批量重置:void * memset ( void * ptr, int value, size_t num );
示例
1.字符串復制
1.1.strcpy
strcpy的作用是復制整個字符數組到另一個字符數組,因此也就非常簡潔,只有兩個參數:
char * strcpy ( char * destination, const char * source );
前一個是要復制到的目標數組起始位置,后一個是被復制的源數組起始位置。使用也非常簡單,下面就用一個例子來說明.
1.2. strncpy
strncpy與strcpy很類似,只是可以指定復制多少個字符。它的原型是:
char * strncpy ( char * destination, const char * source, size_t num );
顯前兩個參數的含義與strcpy相同,第三個參數num就是要復制的字符個數。需要注意的是因為是部分復制,所以該函數不會幫你添加’0’,要記得在調用完之后自己添加一個。
2.字符串連接
2.1. strcat
strcat的功能是把一個字符串連接到另一個字符串的后面。
char * strcat ( char * destination, const char * source );
前一個是目標字符串,后一個是要添加到后面的源字符串。
2.2. strncat
根據strcpy和strncpy之間的關系,應該猜到,該函數是可以指定字符個數進行連接。
char * strncat ( char * destination, const char * source, size_t num ); int main () {char str1[20];char str2[20];strcpy (str1, "To be ");strcpy (str2, "or not to be");strncat (str1, str2, 6);puts (str1);return 0; }3 字符串比較
3.1. strcmp
對兩個字符數組我們不能直接if (s > t)這樣比較,要這樣比較的是兩個字符數組的指針的地址。因此要用到strcmp函數。
int strcmp ( const char * str1, const char * str2 );
兩個參數是要比較大小的字符數組,返回值是它們的大小關系。具體方式是:兩個字符串自左向右逐個字符相比(按ASCII值大小相比較),直到出現不同的字符或遇’0’為止。
如果str1和str2相等則返回0;
如果str1小于str2則返回小于零,如果str1大于str2,則返回大于零。
int main () {char key[] = "apple";char buffer[80];do {printf ("Guess my favorite fruit? ");fflush (stdout);scanf ("%79s",buffer);} while (strcmp (key,buffer) != 0);puts ("Correct answer!");return 0; }輸出結果:
Guess my favourite fruit? orange
Guess my favourite fruit? apple
Correct answer!
3.2 Compare函數使用
test1.Compare(test2) == 0
4 字符串查找
4.1 strchr
strchr函數可以在一個字符串里找某個字符第一次出現的位置。
const char * strchr ( const char * str, int character );
前一個是原字符串,后一個是要查找的字符。
輸出:
Looking for the ‘s’ character in “This is a sample string”…
found at 4
found at 7
found at 11
found at 18
4.2 strstr
strstr函數可以在一個字符串里查找另一個字符串第一次出現的位置。
const char * strstr ( const char * str1, const char * str2 );
其中前一個是文本串,后一個是模式串。
輸出:
This is a sample string。
5.其他函數
5.1字符串長度
strlen用于求一個字符數組的長度,注意它是從給定的起始位置開始不斷往后嘗試,直到遇到’0’為止的,因此它的時間復雜度并不是常數級別的,而是取決于字符數組的長度,在字符數組沒有變動的情況下請務必不要重復調用。
size_t strlen ( const char * str );
那么參數毋庸置疑自然就是要求長度的字符數組了。
5.2 改變連續一段字符的值
memset是一個非常好用的函數,不僅在字符串方面。它可以把連續一段區間的內存修改成同一個值,以字節為單位。而一個字符正好就是一個字節,這也就讓memset可以很好的為字符串的區間修改提供服務。
void * memset ( void * ptr, int value, size_t num );
ptr指向要修改的內存塊的起始地址,value是要修改成什么值,num是修改多少個。
總結
以上是生活随笔為你收集整理的c++:MFC _cstring.h库常用函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ :sqlite3使用:
- 下一篇: c++:结构体的应用