string操作总结

一、string初始化

 

void solve(){
    string str = "Hello world" ;
    char cstr[] = "abcde";
    string s1(str);//string拷贝string
    cout << s1 << endl;
    string s2(str , 2);//s2从str下标为2开始拷贝
    cout << s2 << endl;
    string s3(str , 2 , 3);// s3从str下标为2开始拷贝长度为3
    cout << s3 << endl;
    string s4(cstr);//可以将字符数组拷贝到string
    cout << s4 << endl;
    string s5(cstr , 3);//注意这里和string拷贝有点不一样:将ctr的“前”3个字符拷贝。
    cout << s5 << endl;
    string s6(5 , 'A'); // 生成一个字符串,包含5个'A'字符
    cout << s6 << endl;
    string s7(str.begin() , str.begin()+5);//拷贝区间【0,5】内的字符
    cout << s7 << endl;
    string s8 = str.substr(2);//将str从下标为2开始到末尾拷贝到s8
    string s9 = str.substr(2 , 3);//将str从下标为2开始长度为3拷贝到s9.
}

 

 

 

二、string的比较等操作

你可以用 ==、>、<、>=、<=、和!=比较字符串,可以用+或者+=操作符连接两个字符串,并且可以用[]获取特定的字符。

    str.compare(“abcd”)——完全相等,返回0
    str.compare(“dcba”)——返回一个小于0的值
    str.compare(“ab”)——返回大于0的值
    str.compare(str)——相等

 

三、string特性描述

 

void solve(){
    cout << str.capacity() << endl;//返回当前容量(即string中不必增加内存即可存放的元素个数)
    cout << str.max_size() << endl;//返回string对象中可存放的最大字符串的长度
    cout << str.size() << endl;//返回当前字符串的大小
    cout << str.length() << endl;//返回当前字符串的长度
    cout << str.empty() << endl;//当前字符串是否为空,为空返回1,否则返回0.
   str.resize(10);//设置当前 str 的大小为10,若大小大与当前串的长度,\0 来填充
    str.resize(10 , 'a');//把字符串当前大小置为len,且都为'a'
   str.reserve(10);//设置str的容量 10,不会填充数据
   str.clear();//清空字符串
}

 

 四、string的常用函数

 

   str.assign("ABC");//清空字符串,并设置为"ABC".
    str.swap(str1)//交换str1和str的字符串
    /* 添加操作 */
    str.push_back('A');//在str末尾添加一个字符  'A' ,参数必须是字符形式
    str.append("ABC");//在str末尾添加一个字符串 "ABC",参数必须是字符串形式
    /*insert函数*/
    str.insert(2 , 3 , 'A');//在str下标为2的位置添加 3个 字符'A'
    str.insert(2,"ABC");//在str下标为2的位置添加 字符串 "ABC"
    str.insert(str.begin(),str1.begin(),str1.end()) //将str1插入到str的开头.
    /*erase函数*/
    str.erase(2)//删除下标2 的位置开始包括2,“之后的全删除”
    str.erase(2 , 1)//删除 下标2 的位置开始,之后的 1个 删除
    str.erase(str.begin() + 2)//删除下标为2的字符
    /*find*/
    str.find('A');//在str中查找A,返回下标
    str.find("ABC");//返回下标
    str.rfind('A');//从尾部查找.
    str.find_first_of("abBc");//查找 "abBc" 和str 相等的任何字符,"abBc" 中有就返回位置
    str.find_first_of("abBc",1)//查找 "abBc" 和str 相等的任何字符,从 位置1 处,开始查找"abBc" 中的字符,"abBc" 中有的就返回位置
    str.find_last_of("abBc");

 五、string与整形的转换

void string_int(string s){
    int a = atoi(s.c_str());//先将string转为字符串数组,再转为整形
    int b = stoi(s);//c++函数,直接转为整形
    long long c = stoll(s);//转为长整型
    stringstream ss ;//头文件为sstream
    int n ;
    ss << s ; ss >> n;
}
void int_string(int n){
    stringstream ss;
    ss << n ;
    return ss.str();
}

 

原文链接: https://www.cnblogs.com/nonames/p/12399343.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    string操作总结

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/371091

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月3日 上午10:34
下一篇 2023年3月3日 上午10:35

相关推荐