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

posted @ 2016-10-30 15:25  何大卫  阅读(3189)  评论(0编辑  收藏  举报