string中的常用函数

常用的函数

push_back(char c) 在string 结尾放置字符
pop_back() 删除字符串的最后一个字符,将其长度减少1

/string 中使用 push_back ()效率很低,尽量使用+=/

substr (pos,n) pos 表示要截取的字符串的起始位置,n表示要截取的字符串长度

substr(pos) 表示从pos位置开始一直截取到字符串最后一位

toupper(c)转化为大写

tolower(c)转化为小写

assign() 赋值常用方法:

  • 直接用另一个字符串赋值 例:str2.assign(str1);

  • 用另一个字符串的一个子串赋值 (字符串,起始位置,长度) ,例:str3.assign(str1,2,3);

  • 用一个字符串的前一段子串赋值 (字符串,长度) ,例:str4.assign(“world”,5);

  • 用几个相同的字符串赋值 (num,char) num个char ,例:str5.assign(10,‘c’);

find函数

  • size_t find (constchar* s, size_t pos = 0) const; 在当前字符串的pos索引位置开始,查找子串s,返回找到的位置索引, -1表示查找不到子串
  • size_t find (charc, size_t pos = 0) const; 在当前字符串的pos索引位置开始,查找字符c,返回找到的位置索引, -1表示查找不到字符
  • size_t rfind (constchar* s, size_t pos = npos) const; 在当前字符串的pos索引位置开始,反向查找子串s,返回找到的位置索引, -1表示查找不到子串
  • size_t rfind (charc, size_t pos = npos) const; 在当前字符串的pos索引位置开始,反向查找字符c,返回找到的位置索引,-1表示查找不到字符
  • 如果find找不到char或string则返回 该string.npos

cctype中可用函数

  • isdigit ( c ) 如果c是数字,返回true

  • isalpha( c ) 如果c是字母,返回true : 不区分大小写,大小写都算

  • isalnum( c ) 如果c是字母或数字,返回true

  • isupper() 如果c是大写字母,返回true

  • islower() 如果c是小写字母,返回true

  • iscntrl ( c) c是控制符,返回true

将int转化为string

  • 包含头文件 #include < string>

    std::to_string(int)

    std::to_string(long)

    std::to_string(long long)

    std::to_string(float)

    std::to_string(double)

    std::to_string(long double)

  • 数字转字符串:使用sprintf()函数

char str[10];
int a=123456;
sprintf(str,"%d",a);//转为int
\--------------------
char str[10];
double a=123456;
sprintf(str,"%.3lf",a);//转为三位小数的double
\--------------------
char str[10];
int a=123456;
sprintf(str,"%x",a);//转为16进制

将string转化成其他类型

stoi 将string转化为int

stol string转为long

stoll string转为long long

  • 使用sscanf()函数

    char str[]="123456";
    int a;
    sscanf(str,"%d",&a);
    .............
    char str[]="123.456";
    double a;
    sscanf(str,"%lf",&a);
    .............
    char str[]="BD";
    int a;
    sscanf(str,"%x",&a); //16进制转换成10进制
    

传入

如果输入“hello world!” 使用的是 cin>>str,则 str=“hello”

如果使用的是getline(cin,str) ,则str=“hello world!"

">>"遇到空格停止,开始返回string对象,“getline”遇到enter停止,开始返回string对象。

使用以上性质可以完成:

-给一行字符串按空格分割放入vector中

#include <sstream>

stirng  str = "hello world!";    // 预先给出的字符串
isstringstream is (str);  // 新建一个输入流赋值为str
string temp;              // 新建string临时变量用来存放分段字符
vector <string> vec;
while (is >> temp)   // 因为cin>> 只能从标准输入中读取单个词,遇到空格就停止了
{
    vector.push_back(temp);
}

如果想利用某一特定字符串分割str则可以写

string str ="hello ,a , b";
isstringstream is(str);
vector <string> res;
string temp;
while (getline(is ,temp,',')){
    res.push_back(temp);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值