c++ string类型用法

最近刷AC自动机题目的时候突然发现不能直接普通 scanf("%s", &str);
(实在是我太菜了,用的太少,现在才知道)
( 记得引入 string 头文件 )

输入

  1. string str;
    cin >> str;
  2. string str;
    getline(cin, str);
  3. string str;
    str.resize(105);
    scanf("%s", &str[0]);
  4. char data[105];
    scanf("%s", data);
    string str(data);

输出

  1. cout << str <<endl;
  2. printf("%s", str.data());
  3. printf("%s", str.c_str());

常用成员函数

  1. c_str() 返回字符数组
  2. data() 返回字符串
  3. empty() 返回是否为空
  4. size() 返回字符串长度
  5. length() 返回字符串长度 (和 size() 一模一样)
  6. substr() 得到子字符串
  7. find() 从前往后找子字符串
  8. rfind() 从后往前找子字符串
  9. copy() 复制全部或部分字符
  10. compare() 比较两个字符串
  11. find_first_of() 返回从前往后该字符第一次出现的位置
  12. find_last_of() 返回从后往前该字符第一次出现的位置
  13. find_first_not_of() 返回从前往后第一次出现非该字符串的位置
  14. find_last_not_of() 返回从后往前第一次出现非该字符串的位置
  15. erase() 删除部分

其中 13,14,15 可用来删除字符串两边的空格

string trim(string s)
{
	s.erase(0,s.find_first_not_of(" "));
    s.erase(s.find_last_not_of(" ") + 1);
    return s;
}

重载运算符

可用 +,=,==,!=,<,<=,>,>=

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值