今日学习札记——<string>模板类(11.17)

原创 2015年11月17日 19:00:59
1.string 的定义:typedef basic_string<char> string; 所以,我们只要利用string关键字,就能生成一个以basic_string<char>模板类
所衍生而出的对象。
范例1:
string Str;   //如不指定初始值,则字符串为一个空字符串。
范例2:
cin>>Str;    //利用cin将字符串数据输入到Str对象中。
范例3:声明对象时,我们也可以顺便指定初始值。
string Str("LOVE");

2.basic_string类的基本成员函数----<下钻1:string基本成员函数>
(1) append()  //主字符串延长(调用者)
(2) assign()  //认领
(3) at()      //某个位置字符
(4) begin()   //返回主字符串的起始定位器
    end()     //返回主字符串的终止定位器
(5) compare() //作差比较
(6) data()    //首位置的指针
(7) empty()   //是否为空串
(8) erase()   //擦除
(9) length()  //返回长度
    size()   //容器的大小


(10) find()    //找子字符串第一个出现的位置
     rfind()   //从后往前找
(11) insert()  //插入到某个位置
(12) substr()  //返回子串
(13) swap()    //两个串互换
(14) getline() //取得用户输入的一行数据


3.string重载的运算符
(1) A+B   //将字符串A与字符串B做合并
(2) A!=B  //判断A是否不等于B
(3) A==B  //判断A是否等于B
(4) A<B   //判断A是否小于B(同样有<=,>,>=)
(5) cout<<A; //将字符串A输出到输出流
(6) cin>>A;  //将输入流输入到字符串A


----------------------<下钻1:string基本成员函数>------------------------
(1) append()  //将某字符串加到主字符串后面(调用者)
例子:
int main()
{
    string Str1("I ");
    string Str2("LOVE ");
    string Str3("JUAN");


    //1.简单连接
    Str1.append(Str2);
    cout << Str1<<"JUAN" << endl;


    //2.起始位置连接(计算机从0数数)
    string Str4("JUANLOVE");
    Str1.append(Str4,4,4);
    cout << Str1 << endl;


    //3.连接字符数组
    char cr[] = {'J','U','A','N'};
    string Str5;
    Str5.append(cr,4);
    cout<<Str5;
    return 0;
}


(2) assign()  //将字符串的内容设定给主字符串
例子:
int main()
{
    string Str1("Simon");
    string Str2("JUAN");
    string Str3;


    Str3.assign(Str2);  //主字符串认领
    Str1.assign(Str2);


    cout<<Str3<<Str1<<endl;
    return 0;
}


(3) at()      //返回某个位置的字符
例子:
int main()
{
    string Str1("Simon");
    char c = Str1.at(4);  //返回某个位置字符


    cout<<c<<endl;
    return 0;
}


(4) begin()   //返回主字符串的起始定位器
    end()     //返回主字符串的终止定位器
例子:
int main()
{
    string Str1("SimonLoveJuan");
    string Str2;
    Str2.append(Str1.begin()+5,Str1.begin()+9); //只要记住数数从0开始数


    cout<<Str2<<endl;
    return 0;
}


(5) compare() //对两个字符串做逐字比较
例子:
int main()
{
    string Str1("Simon");
    string Str2("Juan");
    int state1 = Str1.compare(Str2); //字符串作减法
    int state2 = Str2.compare(Str1);


    string Str3("Juan");
    int state3 = Str3.compare(Str2);


    cout<<state1<<" "<<state2<<endl<<state3<<endl;
    return 0;
}


(6) data()    //返回主字符串的首位置的指针
例子:
int main()
{
    string Str1("Simon");
    string Str2;


    Str2 = Str1.data();


    cout<<Str1<<endl<<Str2<<endl;
    return 0;
}


(7) empty()   //判断数据串是否为空串
例子:
int main()
{
    string Str1("Simon");
    string Str2;


    bool b1 = Str1.empty();  //返回0,非空
    bool b2 = Str2.empty();  //返回1,空


    cout<<b1<<endl<<b2<<endl;
    return 0;
}




(8) erase()  //将容器内的数据清除
例子:
int main()
{
    //1.全部清除
    string Str1("Simon");
    Str1.erase();
    cout<<Str1<<endl;


    //2.根据起始和终止位置
    string Str2("LoveSimonJuan");
    Str2.erase(Str2.begin()+4,Str2.end()-4);
    cout<<Str2<<endl;


    return 0;
}


(9) length() //返回数据串的长度
    size()   //容器的大小
例子:
int main()
{
    string Str1("Simon");
    int Length = Str1.length();
    int Size = Str1.size();
    cout <<Length<<" " <<Size<<endl;


    return 0;
}


(10) find()    //找子字符串第一个出现的位置
     rfind()   //从后往前找
例子:
int main()
{
    string Str1("Simon very love JuanJuan.");
    string Str2("Juan");


    int position1 = Str1.find(Str2,5);  //主字符串查找子字符串,从第pos个位置开始找
    int position2 = Str1.rfind(Str2);   //从后往前找
    cout <<position1<<endl<<position2<<endl;


    return 0;
}




(11) insert()  //将数据插入到某个特定的位置
例子:
int main()
{
    string Str1("Simon very love GuiJuan.");
    string Str2("Juan");


    Str1.insert(5,Str2);  //主字符串从第5个位置插入字符串2
    cout <<Str1<<endl;


    return 0;
}


(12) substr() //返回裁剪后的串指针
例子:
int main()
{
    string Str1("Simon very love JuanJuan.");
    string Str2;


    Str2 = Str1.substr(16,8);  //截取子串,起始位置pos,大小n
    cout <<Str2<<endl;
    return 0;
}


(13) swap()   //将两个串的内容互换
例子:
int main()
{
    string Str1("Simon very love JuanJuan.");
    string Str2("JuanJuan");


    Str1.swap(Str2);  //交换两个字符串
    cout <<Str1<<endl<<Str2<<endl;
    return 0;
}


(14) getline()  //取得用户输入的一行字符串
int main()
{
    string Str1;
    getline(cin,Str1);


    cout <<Str1<<endl;
    return 0;
}
---------------------------------------------------------------
(1) A+B   //将字符串A与字符串B做合并
例子:
int main()
{
    string Str1("I Love ");
    string Str2("JuanJuan");
    string Str3 = Str1+Str2;


    cout <<Str3<<endl;
    return 0;
}

今日学习札记——<string>初步(11.17)

1.string 的定义:typedef basic_string string; 所以,我们只要利用string关键字,就能生成一个以basic_string模板类 所衍生而出的对象。 范例1:...
  • niceSimon7
  • niceSimon7
  • 2015年11月17日 19:10
  • 213

【Android学习札记】Intent详解

一、Intent介绍Intent的中文意思是“意图,意向”,Intent是程序中各组件之间进行交互与通讯的一种重要方式,不仅可以指明当前组件要执行的动作,还可以在不同组件之间传递数据; Intent...
  • bt_xxx
  • bt_xxx
  • 2017年02月10日 19:21
  • 99

Git学习札记——进阶

(1)git blame 文件名 该命令会显示出该文件名的创建者,以及最后的提交和时间戳。 。 (2)git reflog 该命令显示的是head指针移动的信息。他是在本地的,而不是你仓库的一部分...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2015年11月11日 22:13
  • 2349

学习札记

师者,传道授业解惑也。在学习过程中,老师扮演了相当重要的角色。他是一位领路人,将你从一个懵懵懂懂的门外汉慢慢接触并了解一个精彩纷呈的世界。但是,在传授知识的过程中,为达到既定的教学目标和要求,老师到底...
  • u013755307
  • u013755307
  • 2014年02月25日 14:46
  • 438

Git学习札记

(1)git log 查看提交日志。会显示出你的每一次提交。如图: 。 (2)git log --pretty=oneline 如果你觉得上面输出内容太多太杂,可以使用这个命令。信息会在一行显示。...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2015年11月07日 23:26
  • 2362

string模板类介绍

string模板类的两种预定义的具体,13种类型和一个常量,数据信息的处理方法,6个构造函数,内存相关的方法。...
  • typecool
  • typecool
  • 2010年08月31日 07:21
  • 2044

今日学习札记——C++Primer补充1(11.7)

1. cout   cin     > 2. 字符串字面值常量,是用一对双引号包围的字符序列。 3. std::cout, 作用域操作符(::)指出我们想使用的定义在命名空间std中。 4...
  • niceSimon7
  • niceSimon7
  • 2015年11月07日 20:08
  • 325

今日学习札记——需求工程基础(11.4)

1. 需求技术发展历程 无需求处理 -> 草图分析 -> 需求分析DFD/ERD -> 需求分析面向对象 机器为中心                           应用为中心          ...
  • niceSimon7
  • niceSimon7
  • 2015年11月04日 21:37
  • 541

Android实习札记(6)---ViewPager使用详解

Android实习札记(6)---ViewPager使用详解                                    ——转载请注明出处:coder-pig 札记(5)中介绍...
  • u014450015
  • u014450015
  • 2016年01月12日 00:19
  • 452

今日学习札记——STL常用容器:vector、list、set和multiset、map和multimap(11.17)

1.vector,头文件#include (1) 声明方法:vector 变量; 范例: int main() {     vector IntArray(3); IntArray[0]...
  • niceSimon7
  • niceSimon7
  • 2015年11月17日 21:50
  • 374
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:今日学习札记——<string>模板类(11.17)
举报原因:
原因补充:

(最多只允许输入30个字)