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的 位置,因为直接输出流的时候,就从那个地方开始打印。