String常见函数总结

一、String的创建
1、创建空的String
e.g. string s;
2、创建有内容的String
e.g. string s="good";
二、String函数
1、输入一行字符
<1> getline(cin,a);//输入一行字符
<2>getline(cin,a,c);//输入到字符c为止的字符
注:cin 输入不能含有空格和换行
2、函数(不常用)
<1>a.begin(); //返回字符串a的起始地址
<2>a.end(); //返回字符串a的结束地址
<3>a.size(); //返回字符串a的长度
<4>a.length(); //返回字符串a的长度
<5>a.empty(); //字符为空返回true,否则返回false
<6>stoi(a); //字符串a转换为int类型
<7>stol(a); //字符串a转换为long int类型
<8>stoul(a); //字符串a转换为unsigned long int类型
<9>stoll(a); //字符串a转换为unsigned long long int类型
<10>stof(a); //字符串a转换为float类型
<11>stod(a); //字符串a转换为double类型
<10>stold(a); //字符串a转换为long double类型
3、将C的函数用于C++
<1>C++ 使用C的函数头文件需加C的头文件
e.g. #include
#include
<2>printf(a.c_str()); //将字符串a用printf输出
<3>在C++中用C数组
e.g.#include<iostream> #include<algorithm> #include<string> #include<cstdio> #include<cstring> using namespace std; int main() { char a[100]; while(gets(a)) //C++中多实例输入最后不用加!=EOF { string b=a; cout<<b<<endl; } return 0; }
4、元素的增添
<1>尾部增加字符串——直接用"+"或使用append()函数
e.g.string a,b,c; a="abc"; b="sc"; c=a+b; c=a.append(b);
<2>插入新的字符串——使用insert()函数
e.g. string a,b,c; a="zxc"; b="asd"; string::iterator it; //定义迭代器 a.insert(it+1,b);//在字符串a的第1个位置插入字符串b b.insert(it+2,5);//在字符串b的第2个位置插入字符5 cout<<a<<endl<<b<<endl; a.insert(it+1,b,2);//在字符串a的第1个位置插入字符串b的前2个字符 cout<<a<<endl; b.insert(it+1,2,c);//将字符串b第1个位置插入2个字符c cout<<b<<endl;
结果:
zasdxc
as5d
5、元素的删除
<1>直接把字符串赋值为空
e.g. s="";
<2>利用clear()函数删除
e.g. s.clear();
<3>利用earse()方法删除字符串中的一段字串或目标字符
e.g. string a; a="abcd12"; //赋值 string::iterator it=a.begin();//定义迭代器 a.erase(it+2);//删除第2个元素,从零开始计数 cout<<a<<endl; a.erase(it,it+4);//删除0-4的元素 cout<<a<<endl; a.erase(it+1,2);//删除从第1个元素开始的2个字符 cout<<a<<endl;
6、元素的修改
利用replace()方法实现字符串修改
e.g.string a,b; a="123456"; b="asdfgh";//赋值 a.replace(3,3,"we")//从第3个开始连续3个字符替换为"we" cout<<a<<endl; a.replace(3,3,b,2,3);//将字符a第3个开始连续3个字符替换为字符串b第2个位置开始往后的3个字符 cout<<a<<endl; a.replace(3,3,b,2);//将字符a第3个开始连续3个字符替换为字符串b中的前2个字符 cout<<a<<endl; a.replace(3,3,3,c);//将字符a第3个开始连续3个字符替换为3个字符c cout<<a<<endl;
7、元素的查询
利用find()方法实现字符或字符串的查找
e.g. string a="we you we"; cout<<a.find('w')<<endl; //查找第一个字符'w',找到返回其下标 cout<<a.find("we"); //查找第一个子串"we",找到返回其第一个字符的下标 cout<<"are"<<endl; //查找不到返回429496725 cout<<a.rfind('w'); //查找a中最后一次出现字符'w'的位置 cout<<a.rfind("we"); //查找最后一个子串"we",找到返回其第一个字符的下标
结果:
0
0
429496725
8、元素的比较
利用compare()方法实现字符串的比较
e.g. string a; a="we you we"; cout<<a.compare("we")<<endl; //a比"we"字符串大,返回1(若两字符串相等,返回0;若a比某个字符串小,返回-1)
比较规则:按照ASCLL码表的顺序对字符串从前到后依次比较字符,顺序大的那个字符串较大。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值