string中的常用函数

    技术2022-07-11  77

    常用的函数

    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); }
    Processed: 0.009, SQL: 9