日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++:MFC _cstring.h库常用函数

發布時間:2025/3/20 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 );
前一個是要復制到的目標數組起始位置,后一個是被復制的源數組起始位置。使用也非常簡單,下面就用一個例子來說明.

int main () {char str1[] = "Sample string";char str2[40];char str3[40];strcpy (str2, str1);strcpy (str3, "copy successful");printf ("str1: %snstr2: %snstr3: %sn", str1, str2, str3);return 0; }

1.2. strncpy

strncpy與strcpy很類似,只是可以指定復制多少個字符。它的原型是:

char * strncpy ( char * destination, const char * source, size_t num );
顯前兩個參數的含義與strcpy相同,第三個參數num就是要復制的字符個數。需要注意的是因為是部分復制,所以該函數不會幫你添加’0’,要記得在調用完之后自己添加一個。

int main () {char str1[] = "To be or not to be";char str2[40];char str3[40];/* 整個字符串進行復制: */strncpy ( str2, str1, sizeof(str2) );/* 部分復制(這里是復制5個字符): */strncpy ( str3, str2, 5 );str3[5] = '0'; /* 添加結尾符 */puts (str1);puts (str2);puts (str3);return 0; }

2.字符串連接

2.1. strcat

strcat的功能是把一個字符串連接到另一個字符串的后面。

char * strcat ( char * destination, const char * source );
前一個是目標字符串,后一個是要添加到后面的源字符串。

int main () {char str[80];strcpy (str, "these ");strcat (str, "strings ");strcat (str, "are ");strcat (str, "concatenated.");puts (str);return 0; }

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 );
前一個是原字符串,后一個是要查找的字符。

int main () {char str[] = "This is a sample string";char * pch;printf ("Looking for the 's' character in "%s"...n", str);pch = strchr(str, 's');while (pch ! =NULL) {printf ("found at %dn", pch - str + 1);pch = strchr(pch + 1, 's');}return 0; }

輸出:

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 );
其中前一個是文本串,后一個是模式串。

int main () {char str[] = "This is a simple string";char * pch;pch = strstr (str, "simple");strncpy (pch, "sample", 6);puts (str);return 0; }

輸出:

This is a sample string。

5.其他函數

5.1字符串長度

strlen用于求一個字符數組的長度,注意它是從給定的起始位置開始不斷往后嘗試,直到遇到’0’為止的,因此它的時間復雜度并不是常數級別的,而是取決于字符數組的長度,在字符數組沒有變動的情況下請務必不要重復調用。

size_t strlen ( const char * str );
那么參數毋庸置疑自然就是要求長度的字符數組了。

int main () {char szInput[256];printf ("Enter a sentence: ");gets (szInput);printf ("The sentence entered is %u characters long.n", (unsigned)strlen(szInput));return 0; }

5.2 改變連續一段字符的值

memset是一個非常好用的函數,不僅在字符串方面。它可以把連續一段區間的內存修改成同一個值,以字節為單位。而一個字符正好就是一個字節,這也就讓memset可以很好的為字符串的區間修改提供服務。

void * memset ( void * ptr, int value, size_t num );
ptr指向要修改的內存塊的起始地址,value是要修改成什么值,num是修改多少個。

int main () {char str[] = "almost every programmer should know memset!";memset (str, '-', 6);puts (str);return 0; } 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的c++:MFC _cstring.h库常用函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。