c++ sting 用法

标签: string
2人阅读 评论(0) 收藏 举报

string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作。


库想使用string,先要加入头文件

[cpp] view plain copy
  1. #include<string>  


字符串的声明:

[cpp] view plain copy
  1. string s;   //声明string对象  
  2. string ss[10];  //string数组  

字符串的初始化:

[cpp] view plain copy
  1. string s;//默认初始化,一个空字符串  
  2. string s1("ssss");//s1是字面值“ssss”的副本  
  3. string s2(s1);//s2是s1的副本  
  4. string s3 = s2;//s3是s2的副本  
  5. string s4(10, 'c');//把s4初始化  
  6. string s5 = "hiya";//拷贝初始化  
  7. string s6 = string(10, 'c');//拷贝初始化,生成一个初始化好的对象,拷贝给s6  

字符串截取的三种方法:

(1)保存为char型数组,然后从数组中选择元素个数

[cpp] view plain copy
  1. char cs[] = "123456";    //char风格字符串  
  2. string s7 = string(cs, 3);  //复制前三个字符到cs中  

(2)利用string的构造函数 截取字符串中N个字符

[cpp] view plain copy
  1. string s8 = "asac";  
  2. string s9 = string(s8, 2);   //拷贝前两个字符  
  3. cout << s9 << endl;  


(3)截取中间的子字符串:

[cpp] view plain copy
  1. string s10 = "abcdefghijk";  
  2. string s11 = string(s10, 0, 2);  //从下标0开始 拷贝下标为0和1的两个部分  
  3. cout << s11 << endl;  


(4)利用substr()函数

[cpp] view plain copy
  1. string s12 = "abcdefgh";  
  2.   
  3. string s12_1 = s12.substr(4);  //返回以下标4位置元素为开头的子字符串  
  4. cout << s12_1 << endl;  
  5.   
  6. string s12_2 = s12.substr(1, 3); //返回下标为1 2 3对应元素组成的字符串   
  7. cout << s12_2 << endl;  

Insert操作:

[cpp] view plain copy
  1. #include <bits/stdc++.h>  
  2. using namespace std;  
  3. int main()  
  4. {  
  5.     ios::sync_with_stdio(false);  
  6.     string str="to be question";  
  7.     string str2="the ";  
  8.     string str3="or not to be";  
  9.     string::iterator it;  
  10.   
  11.     //s.insert(pos,str)//在s的pos位置插入str  
  12.     str.insert(6,str2);                 // to be the question  
  13.   
  14.     //s.insert(pos,str,a,n)在s的pos位置插入str中插入位置a到后面的n个字符  
  15.     str.insert(6,str3,3,4);             // to be not the question  
  16.   
  17.     //s.insert(pos,cstr,n)//在pos位置插入cstr字符串从开始到后面的n个字符  
  18.     str.insert(10,"that is cool",8);    // to be not that is the question  
  19.   
  20.     //s.insert(pos,cstr)在s的pos位置插入cstr  
  21.     str.insert(10,"to be ");            // to be not to be that is the question  
  22.   
  23.     //s.insert(pos,n,ch)在s.pos位置上面插入n个ch  
  24.     str.insert(15,1,':');               // to be not to be: that is the question  
  25.   
  26.     //s.insert(s.it,ch)在s的it指向位置前面插入一个字符ch,返回新插入的位置的迭代器  
  27.     it = str.insert(str.begin()+5,','); // to be, not to be: that is the question  
  28.   
  29.     //s.insert(s.it,n,ch)//在s的it所指向位置的前面插入n个ch  
  30.     str.insert (str.end(),3,'.');       // to be, not to be: that is the question...  
  31.   
  32.     //s.insert(it,str.ita,str.itb)在it所指向的位置的前面插入[ita,itb)的字符串  
  33.     str.insert (it+2,str3.begin(),str3.begin()+3); // to be, or not to be: that is the question...  
  34.   
  35.     return 0;  
  36. }  

ERASE操作:
指定pos和len,其中pos是起始位置,pos以及后面len-1个字符都删除(左闭右开)
迭代器范围,删除这一范围的字符串,范围左闭右开
[cpp] view plain copy
  1. #include <iostream>  
  2. #include <string>  
  3.   
  4. int main ()  
  5. {  
  6.   std::string str ("This is an example sentence.");  
  7.   std::cout << str << '\n';  
  8.                           // "This is an example sentence."  
  9.   str.erase (10,8);       //            ^^^^^^^^  
  10.   //直接指定删除的字符串位置第十个后面的8个字符  
  11.   std::cout << str << '\n';  
  12.                             // "This is an sentence."  
  13.   str.erase (str.begin()+9);//           ^  
  14.   //删除迭代器指向的字符  
  15.   std::cout << str << '\n';  
  16.                             // "This is a sentence."  
  17.                             //       ^^^^^  
  18.   str.erase (str.begin()+5, str.end()-9);  
  19.   //删除迭代器范围的字符  
  20.   std::cout << str << '\n';  
  21.                             // "This sentence."  
  22.   return 0;  
  23. }  
查看评论

C++ sting字符串函数详解

文章转载自: http://www.renfei.org/blog/introduction-to-cpp-string.html1. 运算符重载    a. + 和 +=: 连接字符串     b....
  • cgl1079743846
  • cgl1079743846
  • 2015-05-23 16:41:19
  • 2733

Sting 用法详解

C++ string 详解任何人对本文进行引用都要标明作者是Nicolai M.Josuttis ///////////////////////////////////////////////////...
  • auto_ptr
  • auto_ptr
  • 2010-11-06 11:44:00
  • 3966

【C++】通用函数:过滤string的空行

需要过滤string中的空行,可以网上搜索未果。最终自己写了一个较为通用的函数。 输入s表示要过滤的string;lineend表示行结束符,不同平台的行结束符可能不同。WIn和linux是nl/lf...
  • zhenjing
  • zhenjing
  • 2009-05-27 14:32:00
  • 2137

C++ STL string 基本操作

#include #include #include #include #include #include #include #include #include #include #include ...
  • sflsgfs
  • sflsgfs
  • 2016-01-25 20:49:15
  • 430

C++ string 的基本操作(不断更新中)

C++ string 的操作,这篇博客里面讲的比较清楚: c++中string类的详解 下面是一些我自己使用过的一些string 的用法: 1. 头文件 #...
  • guilanl
  • guilanl
  • 2015-10-22 16:45:56
  • 225

C++中string和int互相转换

int转string int n = 123; std::stringstream ss; std::string str; ss ss>>str; string转int 1. std...
  • jyshuestc
  • jyshuestc
  • 2013-10-29 16:24:21
  • 352

C++中将string转换为int

C语言库函数名: atoi   功 能: 把字符串转换成整型数   函数说明: atoi()会扫描参数nptr字符串,检测到第一个数字或正负符号时开始做类型转换,之后检测到非数字或...
  • Entre_
  • Entre_
  • 2015-08-03 11:07:14
  • 896

sting用法1

# include
  • qq_30638831
  • qq_30638831
  • 2015-10-10 14:31:06
  • 355

STING(a STatisticalINformationGrid approach)

  • 2011年03月03日 22:47
  • 1003KB
  • 下载

java中Sting、Int之间的相互转换方法

  String是一个类,为引用数据类型  int是简单数据类型,  int可以与char之间互换 String转换成Int型方法一:    自编或寻找一个类,包括将String变成其他类型,和其他类...
  • victorwujava
  • victorwujava
  • 2007-05-15 09:49:00
  • 5279
    个人资料
    持之以恒
    等级:
    访问量: 9922
    积分: 2139
    排名: 2万+
    访客
    Flag Counter
    文章存档