天天看點

C++中常用的字元串函數字元串連接配接函數 strcat()字元串複制函數 strcpy()字元串比較函數 strcmp()

       C++語言提供了比C語言更豐富的字元串處理功能。它可以在字元串上經行輸入,輸出,合并,修改,比較,轉換,複制,搜尋等操作。使用這些現成的功能可以大大減少我們的程式設計的負擔。

       輸入和輸出的字元串函數,如printf,puts,cout,scanf,gets,cout等,在使用時應包含頭檔案cstdio,并使用其他字元串函數包含頭檔案cstring。

        cstring是一個專門用于處理字元串的頭檔案。它包含許多字元串處理函數。由于篇幅限制,本節隻能解釋一些常見的内容。

字元串連接配接函數 strcat()

strcat 就是 string catenate 的縮寫,意思為把兩個字元串拼在一起,其格式為:

strcat(Str1, Str2);

Str1、Str2 為需要拼接的字元串。

strcat() 将把 Str2 連接配接到 Str1 後面,并删除原來 Str1 最後的結束标志\0。這意味着,Str1 必須足夠長,要能夠同時容納 Str1 和 Str2,否則字元數組會越界(超出字元串範圍)。

strcat() 的傳回值為 Str1 的位址。

這是一個簡單的示範:

#include <cstdio>
#include <cstring>
int main(){
    char str1[100]="The URL is ";
    char str2[60];
    cout<<"Input a URL: ";
    gets(str2);
    strcat(str1, str2);
    puts(str1);
    return 0;
}
           

運作結果:

Input a URL: https://blog.yunhei.org/index.php/archives/13/↙(輸入)

The URL is https://blog.yunhei.org/index.php/archives/13/

字元串複制函數 strcpy()

strcpy 是 string copy 的縮寫,意思是字元串複制,也即将字元串從一個地方複制到另外一個地方,文法格式為:

strcat(Str1, Str2);

strcpy() 會把 Str2 中的字元串拷貝到 Str1 中,字元串結束标志\0也一同複制。下面是一個簡單的示範:

#include <cstdio>
#include <cstring>
int main(){
    char str1[50] = "雲黑系統";
    char str2[50] = "https://yunhei.org/";
    strcpy(str1, str2);
    printf("str1: %s\n", str1);
 
    return 0;
}
           

運作結果:

str1: https://yunhei.org/

你看,将 str2 複制到 str1 後,str1 中原來的内容就被覆寫了。

另外,strcpy() 要求 Str1 要有足夠長的長度,否則不能全部裝入所複制的字元串。

字元串比較函數 strcmp()

strcmp 是 string compare 的縮寫,表示字元串比較。文法是:

strcmp(Str1, Str2);

Str1 和 Str2 是兩個需要比較的字元串。

字元本身沒有大小,strcmp()比較字元的ASCII值。

strcmp()開始比較兩個字元串的第0個字元。如果它們相等,它們會繼續比較下一個字元,直到它們遇到不同的字元或字元串的末尾。

傳回值:如果 Str1 和 Str2 相同,則傳回0;如果 Str1 大于 Str2,則傳回大于 0 的值;若 Str1 小于 Str2,則傳回小于0 的值。

比較4組字元串:

#include <cstdio>
#include <cstring>
int main(){
    char str1[] = "aBcDeF";
    char str2[] = "AbCdEf";
    char str3[] = "aacdef";
    char str4[] = "aBcDeF";
    printf("a VS b: %d\n", strcmp(a, b));
    printf("a VS c: %d\n", strcmp(a, c));
    printf("a VS d: %d\n", strcmp(a, d));
 
    return 0;
}
           

運作結果:

str1 VS str2: 32

str1 VS str3: -31

str1 VS str4: 0

原文連結:https://blog.csdn.net/qq_41510854/article/details/95180798

繼續閱讀