zoukankan      html  css  js  c++  java
  • C++string类整理

    string类

    string类

    头文件:#include<string>

    名称空间:using namespace std;

    初始化:

    string Str;

    String类的构造函数和析构函数如下:

    1.     string s(str) //拷贝构造函数 生成str的复制品
    2.    string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值
    3.     string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
    4.     string s(cstr) //将C字符串作为s的初值
    5.     string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
    6.     string s(num,c) //生成一个字符串,包含num个c字符
    7.     string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值

    string类操作

    1.  swap()   //交换两个字符串的内容
    2. +=,append(),push_back() //在尾部添加字符
    3.  insert() //插入字符
    4. erase() //删除字符
    5. replace() //替换字符
    6.  empty()  //判断字符串是否为空
    7. [ ], at() //存取单一字符
    8. >>,getline() //从stream读取某值
    9. copy() //将某值赋值为一个C_string
    10. c_str() //将内容以C_string返回
    11. data() //将内容以字符数组形式返回
    12. substr() //返回某个子字符串

    string类与字符串数组的转换

    C++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符数组的形式返回字符串内容,但并不添加’’。c_str()返回一个以‘’结尾的字符数组,而copy()则把字符串的内容复制或写入既有的c_string或字符数组内。C++字符串并不以’’结尾。

    string类型转换为字符数组

    #include<cstdlib>
    
    #include<iostream>
    
    #include<cstdio>
    
    #include<string>
    
    #include<cstring>
    
    using namespace std;
    
    int main()
    
    {
    
           string s("123456.1");
    
           char arr[10];
    
           cout<<s.data()<<endl;//1.返回不带'' 的字符数组 123456.1
    
           cout<<s.c_str()<<endl;//2.返回带 ''的字符数组 123456.1
    
           s.copy(arr, 8);//3.回不带'' 的字符数组
    
           arr[8] = '';//不带 '' 输出堆栈中的垃圾
    
           cout<<arr<<endl;//123456.1
    
           //转数字
    
           printf("%f
    ",atof(s.data())); //123456.100000
    
           printf("%f
    ",atof(s.c_str()));//同上
    
           printf("%f
    ",atof(arr));//同上
    
          
    
           cout<<strlen(arr)<<endl;//8
    
           cout<<strlen(s.data())<<endl;//同上
    
           cout<<strlen(s.c_str())<<endl;//同上
    
           return 0;
    
    }

    字符数组转化成string类型

    char ch [] = "ABCDEFG";
    string str(ch);//也可string str = ch;
    或者
    char ch [] = "ABCDEFG";
    string str;
    str = ch;//在原有基础上添加可以用str += ch;

    提取子串:

    substr(),形式如下:

    s.substr();//返回s的全部内容

    s.substr(11);//从索引11往后的子串

    s.substr(5,6);//从索引5开始6个字符

    把两个字符串结合起来的函数是+。

  • 相关阅读:
    【Elasticsearch 技术分享】—— ES 常用名词及结构
    【Elasticsearch 技术分享】—— Elasticsearch ?倒排索引?这都是什么?
    除了读写锁,JUC 下面还有个 StampedLock!还不过来了解一下么?
    小伙伴想写个 IDEA 插件么?这些 API 了解一下!
    部署Microsoft.ReportViewe
    关于TFS强制undo他人check out
    几段查看数据库表占用硬盘空间的tsql
    How to perform validation on sumbit only
    TFS 2012 Disable Multiple Check-out
    在Chrome Console中加载jQuery
  • 原文地址:https://www.cnblogs.com/langyao/p/8747583.html
Copyright © 2011-2022 走看看