C++ string用法总结

string字符串。

1.构造函数

  • string s;
  • string s(ss);
  • string s=ss;
  • string s(10,'a');
  • string s("ssssssss");
  • string s(ss,3,6);ss[3]~ss[8]

2.输入输出

  • cin>>s只能读入不带空格字符串
  • getline(cin,s);可读入一行字符串,包括空格

3.遍历

  • 数组方式
  • 迭代器方式for(string::iterator it=s.begin();it != s.end(); it++)

4.字符串连接

  • s+=s1;
  • s.append(s1);//还是第一条好用

5.字符串查换删插

string s,ss;

  • string::npos;npos是一个常数,表示不存在的位置
  • s.find(ss);在s中查找ss,返回ss第一次出现位置
  • s.find(ss,n);从第n个位置起查找ss,返回ss第一次出现位置
  • s.find_first_of(ss);s.find_last_of(ss);查找ss中任意字母在s中首次/最后一次出现位置
  • s.find_first_not_of(ss);s.find_last_not_of(ss);
  • s.rfind();倒着查的find
  • s.replace(n1,n2,ss);将s[n1]至s[n1+n2-1]替换为ss
  • s.substr(pos, n);截取s中从pos开始的n个字符的子串,并返回
  • s.substr(pos);截取s中从从pos开始到末尾的所有字符的子串,并返回
  • s.erase(n);删除s[n-1]以后的所有元素
  • s.erase(n1,n2);删除s[n1]至s[n1+n2-1]元素
  • s.insert(n,ss);在s[n-1]后插入ss

6.反转

  • #include <algorithm> reverse(s.begin(),s.end());

7.大小写转化

  • transform(s.begin(),s.end(),s.begin(),::toupper);
  • transform(s.begin(),s.end(),s.begin(),::tolower);

8.其他

#include <cctype>

  • isalnum(c);c是字母或数字,返回true
  • isalpha(c);c是字母,返回true
  • iscntrl(c);c是控制字符,返回true
  • isdigit(c);c是数字,返回true
  • isgraph(c);c不是空格,但可打印,为true
  • islower(c);c是小写字母,为true
  • isprint(c);c是可打印字符,为true
  • ispunct(c);c是标点符号,为true
  • isspace(c);c是空白,为true
  • isupper(c);c是大写字母,为true
  • isxdigit(c);c是十六进制的数,为true
  • tolower(c);如果c是大写字母,返回其小写字母,否则返回c
  • toupper(c);如果c是小写字母,返回其大写字母,否则返回c

9.奇技淫巧

  • 按空格分割字符串
#include<iostream>
#include <sstream>
#include<string>
using namespace std;

int main()
{
	string s="asd asdgf dgg fghj j a";
	istringstream is(s);
	string ss;
	while(is>>ss)
	{
		cout<<ss<<endl;
	} 
	return 0;
}
  • string转int/double
int main()
{
    string s = "123";
    double a = atof(s.c_str());
    int b = atoi(s.c_str());
    return 0;
}
  • 另一种转换方法
#include<iostream>
#include <sstream>
#include<string>
using namespace std;

int main()
{
	//amaning codes
	istringstream is(s);
	string ss;
    double a;
    int b;
    is>>a>>b;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/wenmiao_/article/details/82318213