C++ 中 string类的使用

参考接口:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html

自己写的demo如下,已经编译验证

//
//  main.cpp
//  3.string
//
//  Created by zhufengzhu on 16/7/26.
//  Copyright © 2016年 zhufengzhu. All rights reserved.
//

#include <iostream>
#include <string>
using namespace std;
int main(int argc, const char * argv[]) {
    //1、构造
    string s1("hello");
    string s2 = "hello123";
    string s3(5,'a');
    cout<<s3<<endl;
    
    //2、相关特性
    //返回一个非null终止的c字符数组
    char *p1 = (char *)s1.data();
    cout<<p1<<endl;
    //返回一个以null终止的c字符串
    char *p2 = (char *)s1.c_str();
    cout<<p2<<endl;
    char tmp[100] = {};
    //从下标1开始的2个字符拷贝到tmp
    s2.copy(tmp,2,1);
    cout<<"截取的字符"<<tmp<<endl;
    
    //3、容量
    cout<<"s2的容量"<<s2.capacity()<<endl;
    cout<<"s2最大的长度"<<s2.max_size()<<endl;
    cout<<"s2当前的长度"<<s2.size()<<endl;
    cout<<"s2当前的长度"<<s2.length()<<endl;
    cout<<"s2是否为空"<<s2.empty()<<endl;
    s2.resize(100);//后面加\0字符填充
    cout<<"s2修改后的大小"<<s2.size()<<endl;
    cout<<"s2修改后的长度"<<s2.length()<<endl;
    cout<<s2<<endl;
    
    //4、字符修改
    //连接
    string s4 = "happy";
    string s5 = s4+" everyday";
    cout<<s5<<endl;
    //追加
    s4.append("123");
    cout<<s4<<endl;
    //比较
    if(s4.compare("zappy")>=0){
        cout<<"s4比较大"<<endl;
    }
    else{
        cout<<"s4比较小"<<endl;
    }
    
    string s6 = "abc";
    string s7 = "ABC";
    //比较符重载
    if(s6>s7){
        cout<<"s6大"<<endl;
    }
    
    //子串
    string s8 = s6.substr(0,2);
    cout<<s8<<endl;
    //交换
    s8.swap(s6);
    cout<<s8<<endl;
    
    //查找字符、字符串
    string s9 = "sundday";
    int pos = s9.find("d",0);
    cout<<"pos的位置"<<pos<<endl;
    pos = s9.find("day");
    cout<<"pos的位置"<<pos<<endl;
    
    //替换
    string s10 = "abcdefg";
    s10.replace(2, 2, "AAAAA");
    cout<<"替换后"+s10<<endl;
    //插入
    string s11 = "ab";
    s11.insert(1, "BBBB");
    cout<<s11<<endl;
    //删除
    string s12 = "0123456";
    s12.erase(2, 2);
    cout<<s12<<endl;
    
    //迭代器
    string::iterator p = s12.begin();
    for (int i=0; i<s12.length(); i++) {
        cout<<*p<<endl;
        p++;
    }
    
    return 0;
}

 

posted @ 2016-07-26 23:15  知吾猪  阅读(259)  评论(0编辑  收藏  举报