C++ 字符串操作


cstring 里面包含有操作空字符結尾的函數。

 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 int main(){
 5     char str1[50]="He is my best friend";
 6     char* str2="He is not my best friend";
 7     cout<<"The strings that you typed is: "<<endl
 8         <<str1<<endl<<str2<<endl;
 9     //輸出兩個字串的長度
10     cout<<"Their length is "<<strlen(str1)<<" and "<<strlen(str2)<<endl;
11     //將str2合到str1里面
12     cout<<"After strcat str1 now is \n"<<strcat(str1,str2)<<endl;
13     //比較
14     cout<<"Comparing result is "<<strcmp(str1,str2)<<endl;
15     //將str2復制到str1里面
16     cout<<"After copy str1 now is \n"<<strcpy(str1,str2)<<endl;    
17     return 0;
18 }

 

1. 確定長度

用strlen()確定數學的長度。

 

2. 連接

  • strcat(str1,str2) 把str2連接到str1上面。
  • strncat(str1,str2,num) 意思是 把str2的前Num個字符 連接到str1上面。

strcat_s(), strncat_s() 為以上兩個的安全替換策略。因為上述 字符串都是以'\0'結尾的。

以上兩種函數的返回值都是第一個字串的首地址,因而可以直接用cout 進行流輸出

 

3. 復制

strcpy(str1,str2) 把str2復制到str1里面,並且返回str1的首地址。

strcpy_s()為安全替換策略。

 

4. 比較

strcmp(str1,str2) str1 小於 str2 范圍值也將小於0   其他類推。

 

5. 搜索

strspn(str1,str2) 在str1中搜索出 沒有出現在str2 的第一個字符。

1 #include <iostream>
2 #include <cstring>
3 using namespace std;
4 int main(){
5     char* str1="i earn money";
6     char* str2="aeiou ";
7     cout<<strspn(str1,str2);
8     return 0;
9 }

str1 是一句話,str2是aeiou他們都是元音字母。該程序的目的是為了 找到str1中第一個不是元音字母的位置 

很明顯,第一個不是元音字母的字符是字母'r',因而,輸出其所在位置4

strstr(str,substr)  返回str中找到substr的字串的地址

1 #include <iostream>
2 #include <cstring>
3 using namespace std;
4 int main(){
5     char* str1="How do you know that I love you";
6     char* str2="now";
7     cout<<strstr(str1,str2);
8     return 0;
9 }

str1中第一次出現 now 三個字符的地方是str1里面的 know的 位置,因為直接輸出流的時候,就從那個地方開始打印。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM