string STL 常用函数
作者:
Dionysus.
,
2022-03-24 17:24:08
,
所有人可见
,
阅读 218
简单总结
1.string -> char字符串:c_str()
string str="adcd";
char *p=(char*)str.c_str();
2.string -> int : atoi() //直接转换,也就是"231" -> 231
//这里应该是stoi(),atoi()是char -> int
std::string str = "123";
int n = atoi(str.c_str());
cout<<n; //123
3.int -> string : to_string()//也是直接转换
std::string pi = "pi is " + std::to_string(3.1415926);
4.在string中插入一个字符或者字符串:insert()
(1)插入字符时位置只可用地址,不可用字符串的下标
string s = "askda";s.insert(begin(),'2')//只可用具体的地址,这里插入的意义是,在原来还未被插入的字符串(或字符)的前一个位置插入一个值,不必担心越界的问题,因为数组相当于扩容了一位
(2)插入字符串的话,位置可以用下标来实现,例如s.insert(1,"23")//也可以以这样的形式来插入字符s.insert(1,"1")
5.截取字符串:substr()
string s = "asdijsa";
string s1 = s.substr(2,4);//意义是,从字符串下标2开始,往后数4个数(包括下标2的那个数),从而返回截取的字符串,如果不写要截取多少个数,则默认截取到字符串最后一个数
6.查找字符或字符串:find()
s.find("asa")//返回的是被查找的字符串开头的下标,注意,返回的地址是下标,而不是物理上的地址,若未找到则返回npos,静态常量 size_t npos = -1;,因为是无符号整形,所以他是该类型的最大可能表示值
//这样输出npos
string s = "asda";
cout << std::string::npos;
7.替换字符串:replace()
(1)s.replace(n,m,str)//从位置n开始,替换第m个字符为str
(2)s.replace(u.begin(),u.end(),str)//把u从begin()到end()的子串替换成str
8.删除字符串:erase(begin,n)//开始的下标,要删除的字符数//意思就是从begin开始要删除几个字符
9.检查字符是否是十进制数字:isdigit();
检查字符是否是大写字母:isupper();