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

原创 2015年11月17日 19:10:14
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:00
  • 215

【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
  • 2356

学习札记

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

Git学习札记

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

软件工程学习~初步总结

      其实学完软件工程已有几天了,一直没写总结,一来是软件工程中的一些作业还没有做完,二来是对软件工程的理解还不是很透彻。到目前为止,仍然对某些地方不太清楚。      学习其实是一个由表及里的...
  • the_fire
  • the_fire
  • 2009年08月24日 09:26
  • 1320

github初步学习

不知不觉中发现代码的数量多了起来,在电脑上存放太过于臃肿,并且还不能换时空工作,学习点github使用方法 Git 使用 在文件夹 helloworld 下 git init//建立git可以记录的...
  • bolvtin
  • bolvtin
  • 2016年02月23日 12:04
  • 429

treap学习小结(一)

treap学习小结,清晰易懂~
  • Regina8023
  • Regina8023
  • 2014年11月29日 18:13
  • 778

今日学习札记——C++指针3(11.4)

5.指针——管理地址信息,按地址管理数据 - 指针定义与基本操作 # 定义: 1) * 例子:int *p; int *p,*q; //定义多个指针变量时,每个指针变量前都要有* 2)用t...
  • niceSimon7
  • niceSimon7
  • 2015年11月04日 12:12
  • 409

今日学习札记——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个字)