2020-10-18C++筆記之C/C++之字串賦值

dwnb發表於2020-10-18

C++筆記之C/C++之字串賦值

C

序號函式 & 目的
1strcpy(s1, s2);
複製字串 s2 到字串 s1。
2strcat(s1, s2);
連線字串 s2 到字串 s1 的末尾。
3strlen(s1);
返回字串 s1 的長度。
4strcmp(s1, s2);
如果 s1 和 s2 是相同的,則返回 0;如果 s1<s2 則返回小於 0;如果 s1>s2 則返回大於 0。
5strchr(s1, ch);
返回一個指標,指向字串 s1 中字元 ch 的第一次出現的位置。
6strstr(s1, s2);
返回一個指標,指向字串 s1 中字串 s2 的第一次出現的位置。

C++

string s="";

string a="abcdefg";

 

1.將字串a的元素賦值逐一賦值給另一字串s

s+=a[i];

 

2.將字串a完全賦值給新字串s

s.assign(a);

 

3.將字串a的一部分賦值給新的字串s

start是擷取字串的首位置,len是擷取字串的長度

s.substr(start,len);

s.assign(a,start,len);

 

4.對字串s賦相同的n個初值

s.assing(n,'x'),如給s賦10個字元a寫法如下:

s.assign(10,'a');

 

特別注意:strcmp(const char s1,const char s2)這裡面只能比較字串,即可用於比較兩個字串常量,或比較陣列和字串常量,不能比較數字等其他形式的引數。
ANSI標準規定,返回值為正數,負數,0 。而確切數值是依賴不同的C實現的。
如果要比較的物件是兩個string,則利用函式compare()。若要比較string s1和s2則寫為:s1.compare(s2),若返回值為0,則兩者相等。
注意:在比較兩個字串時不能利用符號“==”,“==”符號比較的是兩個字串的地址是否相等,此前在這個問題上犯過錯誤,謹記!謹記!
若是比較兩個字元,則可以用”==”直接進行比較~

但在比較兩個string物件時是可以利用“==”的,相等的話,則表示式的返回值為1,不等為0。

string str1,str="adadadad";
    int length =str.size();
        for(int i=0;i<length;++i)
        {
            str1=str1+str[i];
            //cout<<str1[i]<<endl;
        }
        cout<<str<<endl;
        cout<<str1<<endl;
    return 0;

不能str1[i]=str[i],會失敗

相關文章