【笔记】字符串的相关函数

接收带空格的一段语句

接受带空格的一段话,以换行分隔;

注意:①如果在getline之前用过scanf,则应该先用getchar()读掉输入流的第一个回车;

②别忘记 cin 部分;

getline(cin, s);

将字符串中第k个“数字字符”转化为int型数字

int num = s[k] - '0';

连接两个字符串

string c = a + b;

插入字符串

增:在位序 k 后面插入字符串str;

eg:

string str = "abc";

str.insert(1, "xyz");

输出: str = " axyzbc";

s.insert(k, str);

删除字符串中内容

删除下标为k的单个字符,或删除下标为k 向后的n个字符

注意:形参为 int , int

s.erase(k, 1);
s.erase(k, n);

删除从first到last的所有字符;

注意:first和last为迭代器

s.erase(first, last);

判断字符串str中是否存在子字符串s

//查1:查找失败条件是string::npos
if(str.find(s) == string::npos)

查找str中下标为pos,长度为len的子串s

s = str.substr(pos.len);

将字符转化为数字

int a;
string s;

//字符串变为int
a = stoi(s);
//字符串变为float
a = stof(s);
//字符串变为long long 
a = stoll(s);
//字符串变为double
a = stod(s);

以字符串a为输入,读取字符串b

头文件:#include <sstream>

定义一个sstream类型的变量 str,其内容为一段话a;

用b读取str中的内容;

#include <sstream>

stringstream str(a);
while(str >> b) { 处理b }

定位到输入流中的特定字符“key”的首位置

①用字符c遍历str,直至c到达“key”的首字母处;

②用字符串 key 接收字符“key”;

string key;
char c;
while( c = getchar(), c != '\"');    //用c读入输入流,直至出现左引号 "
while( c = getchar(), c != '\"') key += c;    //在出现右引号 " 之前不断读入key

读入字符串str中被 { } 扩住的内容key

①用s先逐个接收str中内容,直至遇到 '{',

②用key逐个接收介于 '{' 和 '}' 中的内容,

③遇到 '}' 时退出接收key,继续接收s直至出现下一个 '{' 或结束;

string str, s, key;
int i = 0;
while( i < str.size())
{
    if(str[i] == '{')
    {
        i ++;    //跳过'{'
        while(str[i] != '}') key += str[i];     //接收 { key }
        i ++;    //跳过'}'
    }
    else
        i ++;    //跳过无关字符;
}

判断一个字母是不是数字

if( isdigit(s) );

大小字母转换函数

//大写变小写
tolower(s);
//小写变大写
toupper(s);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值