1.string的各种动态、静态赋值

//静态
string s1=("abckd");
string s2("bbbbb");
string s3(s1);
string s4=s2;
//动态
string s5;
cin>>s5;

2.sting的遍历

string s="xiaojaiyu";
string::iterator iter;
//数组方式遍历
for(int i=0;i<=s.length()-1;i++){cout<<s[i];
}
//迭代器方式
for(iter=s.begin();iter!=s.end();iter++){cout<<*iter<<endl;
}

3.字符指针与string互换

string s;
cin>>s;
char buf[128];
strcpy(buf,s.c_str());
//cout<<"buf:"<<buf<<end;

4.字符串的部分拷贝

string s="xiao jia yu";
char a[20];
s.copy(a,3,3);//从第三个字符开始拷贝3个字符

5.字符串的连接

//第一种方式
string s1="xiao";
string s2="jiayu"
string s3=s1+s2;
//第二种方式
string s4="bang";
s4.append(s3);

6.字符串的查找与替换

string s1="wbm hello wbm 111 wbm 222 wbm 333";
//查找出现wbm的第一个下标
int offindex=s1.find("wbm",0);//从位置0开始
//查找在string中出现wbm所有下标的位置
int offindex=s1.find("wbm",0);//没有找到就会返回-1
while(offindex!=s1.npos){
cout<<"offindex:"<<offindex<<endl;
offindex++;
offindex=s1.find("wbm",offindex);
}
//将所有的wbm换成大写
int offindex=s1.find("wbm",0);
while(offindex!=s1.npos){s1.replace(offindex,3,"WBM");offindex++;offindex=s1.find("wbm",offindex);
}

7、大小写转换

string s1='AAAbbb';
transform(s1.begin(),s1.end(),s1.begin(),toupper);//全部转化为大写
transform(s1.begin(),s1.end(),s1.begin(),tolower);

8.区间的插入与删除

string s1="hello1 hello2 hello3"
int index=s1.find('l',0);
while(index!=s1.npos){s1.erase(index,1);//index++;删除之后已从下一个开始,当前下标值已换index=s1.find("l",index);
}
//全部删除
s1.erase(s1.begin(),s1.end());

完整代码:

#include<string>
#include<iostream>
#include<stdlib.h>
#include<algorithm>
using namespace std;
//string的赋值
void f1(){string s1="shihao";//静态赋值string s2("bbbbbb");string s3(s1);//值coPystring s4(10,'a');//等价于string s4=("aaaaaaaaaa")string s5;cin>>s5;//动态输入cout<<s1<<endl;cout<<s2<<endl;cout<<s3<<endl;cout<<s4<<endl;cout<<s5<<endl;
}
//string的遍历
void f2(){string s="fanyanfutianxiadiyi";string::iterator iter;//数组方式for(int i=0;i<s.length()-1;i++){cout<<s[i]<<"";}cout<<endl;//迭代器方式for(iter=s.begin();iter!=s.end();iter++){cout<<*iter<<"";}cout<<endl;
}
//字符指针和string的互换
void f4(){string s1="aaabbb";cout<<s1.c_str()<<endl;//char buf[128]={0};s1.copy(buf,3,3);//拷贝三个字符,从一个字符开始cout<<"buf:"<<buf<<endl;
}
//字符串的连接
void f5(){//1:string s1="aaa";string s2="bbb";s1=s1+s2;cout<<"s1:"<<s1<<endl;//2string s3="fanyanfu";s3.append(s1);cout<<"s3:"<<s3<<endl;
}
//字符串的查找与替换
void f6(){string s1="wbm hello wbm 111 wbm 222 wbm 333";//查找 从查找位置开始第一个出现的下标int index=s1.find("wbm",2);//位置从下标0开始cout<<"index:"<<index<<endl<<endl;//统计出现wem的所有下标int offindex=s1.find("wbm",0);while(offindex!=s1.npos){cout<<"offindex:"<<offindex<<endl;offindex++;offindex=s1.find("wbm",offindex);}//将所有的wbm换成大写offindex=s1.find("wbm",0);while(offindex!=s1.npos){s1.replace(offindex,3,"WBM");offindex++;offindex=s1.find("wbm",offindex);}cout<<"替换结果为:"<<s1<<endl;//把aaa替换成大写string s2="aaa bbb ccc";index=s2.find("aaa",0);s2.replace(index,3,"AAA");cout<<endl<<"s2:"<<s2<<endl;
}
//大小写转换
void f7(){string s1="AAAbbb";transform(s1.begin(),s1.end(),s1.begin(),toupper);cout<<"全部转化为大写:"<<s1<<endl;transform(s1.begin(),s1.end(),s1.begin(),tolower);cout<<"全部转化为小写:"<<s1<<endl;
}
//区间的插入与删除
void f8(){string s1="hello1 hello2 hello1";int index=s1.find("l",0);while (index!=s1.npos){s1.erase(index,1);index=s1.find("l",index);}cout<<"删除后的结果为:"<<s1<<endl;s1.erase(s1.begin(),s1.end());cout<<"全部删除后的结果:"<<s1<<endl;
}
int main(){f4();system("pause");return 0;}

C++中对String的各种操作相关推荐

  1. JVM学习笔记之-StringTable String的基本特性,内存分配,基本操作,拼接操作,intern()的使用,垃圾回收 ,G1中的String去重操作

    String的基本特性 string:字符串,使用一对""引起来表示. String s1 = ""; //字面量的定义方式 String s2 = new S ...

  2. Python中 redis StrictRedis对象操作string类型

    Python中 redis StrictRedis对象操作string类型 准备 在桌面上创建redis目录 使用pycharm打开 redis目录 创建redis_string.py文件 from ...

  3. C++/C++11中std::string用法汇总

    C++/C++11中std::string是个模板类,它是一个标准库.使用string类型必须首先包含<string>头文件.作为标准库的一部分,string定义在命名空间std中. st ...

  4. Java中的String,StringBuilder,StringBuffer三者的区别

    最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下, ...

  5. stringbuffer的最大长度_Java中的String、StringBuffer和StringBuilder

    作为作为一个已经入了门的java程序猿,肯定对Java中的String.StringBuffer和StringBuilder都略有耳闻了,尤其是String 肯定是经常用的.但肯定你有一点很好奇,为什 ...

  6. C++中的string 类型占几个字节

    C++中的string 类型占几个字节 一:先看一道面面试题: 题目是要求输出:TrendMicroSoftUSCN 然后要求修改程序,使程序能输出以上结果.代码如下: #include <io ...

  7. 重温java中的String,StringBuffer,StringBuilder类

    不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...

  8. Swift2.0 中的String(一):常用属性

    字符串算是平常用的比较多.花样也比较多的一个类型,昨天有空把相关的一些常用操作都写了一遍,总结出来.其实iOS里面的字符串更复杂,还有NSString系列等等,那些API太多将来需要用的时候再慢慢学. ...

  9. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作

    在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询* @param userId* @return 如果存在返回 ...

最新文章

  1. vmware中修改ubuntu的分辨率
  2. Django-Model操作数据库(增删改查、连表结构)参考
  3. 推荐一个提供全球新冠肺炎确诊,死亡和治愈人数的网站,提供csv下载
  4. SQLite DBHelp
  5. win10运行vue项目_vue+webpack在window10环境下搭建及遇到的问题
  6. 交通部 城轨交通运营管理规定_重庆启动节前轨道交通运营管理安全执法检查...
  7. 医疗搜索中的query词权重算法探索
  8. asp绑定gridview属性_《ASP.ENT Core与RESTful API开发实战》(第3章)中
  9. 收银系统服务器ip设置,如何修改打印机IP地址?
  10. 苹果商店打不开怎么办_苹果手机下载迅雷方法,iOS迅雷安装,怎么安装苹果版迅雷...
  11. Ctrl+Shift+F 输入法变成繁体 输入法简体繁体切换
  12. (附源码)ssm通用数据展示系统 毕业设计200934
  13. 基于python OpenCV多边形图像识别的实现
  14. opencv给图片加中文水印
  15. 软件测试入门随笔——软件测试基础知识(七)
  16. 阿里新零售中的智能补货(I)— 库存模型
  17. 软件开发模型介绍、总结归纳
  18. 如何在word中插入PDF文件
  19. inf文件基础知识扫盲
  20. Android studio 音乐播放器

热门文章

  1. boost::mp11::mp_iota相关用法的测试程序
  2. boost::math::geometric相关用法的测试程序
  3. boost::gil::detail::convolve_2d用法的测试程序
  4. boost::function_types::is_member_function_pointer的用法测试程序
  5. boost::gregorian模块实现使用周期来计算日期信息的测试程序
  6. Boost:最小最大计时器测试程序
  7. DCMTK:生成一个C ++标头,为DICOM标签定义符号名
  8. VTK:图表之TreeToMutableDirectedGraph
  9. Qt Creator浏览ISO 7000图标
  10. OpenGL键盘消息实例