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的 位置,因為直接輸出流的時候,就從那個地方開始打印。

