C++ string的使用

在了解如何使用string类之前,我们先来看看C语言中使用字符串有多麻烦:

调用头文件:cstring

定义一个C字符串:

	char str1[51]="Hello World";
char str2[51]="你好,世界"; printf("%s \n %s",&str1,&str2);

判断两个字符串是否相等:

	if(strcmp(str1,str2))
//do sth.

后续赋值:

	strcpy(str1,str2);

现在来看看string是如何使用的:

string类的成员函数:

名称 功能
构造函数 初始化字符串
析构函数 销毁字符串
= 赋值
+,+ =,append( ),push_back() 拼接字符串
insert () 插入字符
erase() 删除字符
clear() 移除全部字符(相当于="")
resize() 改变字符数量
replace() 替换字符
!=,==,<,<= ,>=,> 比较字符串
c_str() 将内容以 C - string 形式返回
substr() 返回子字符串
size(),length() 返回字符串长度
find() 搜寻某子字符串或字符
begin( ),end() 提供正向迭代器支持
rbegin(),rend() 提供逆向迭代器支持
[],at() 返回某个位置的字符

调用头文件:string

	string str1;//初始化字符串,空字符串
string str2 = str1; //拷贝初始化,其内容等于s1
string str3 = "I am b"; //直接初始化
string str4(10, 'a'); //s4存的字符串是aaaaaaaaaa
string str5(str4); //拷贝初始化
string str6("I am d"); //直接初始化
string str7 = string(6, 'c'); //拷贝初始化,cccccc

string的操作:

	string str8=str3+str4; //将s3与s4拼接,储存在s8内
string str9="the str9: ";
str9+=str6; //直接拼接
cout << str9.size() << endl; //输出s9的长度
cout << str9[5] << endl; //输出s9的第5个字符 string str10;
getline(cin,str10); //读取一整行字符串至s10(即按下回车键才终止输入)
cout << str10 << endl; //输出刚才输入的字符串 string str11=str7.substr(0,3); //截取str7从0到3之间的字符串
cout << str11 << endl; str11.insert(1,"bbb"); //将"bbb"插入到s11的第1个位置中
str11.erase(1,3); //删除s11的第1个位置之后的3个字符
cout << str11 << endl; str11="123456789"; //对s11进行重新赋值
s11tr.replace(3-1,3,"kkk"); //替换s11的第3-1个位置之后的3个字符串为"kkk"
cout << str11;

显而易见,C++的string类比C的字符串定义好非常多。

最后补上一句:STL大法好!!!

C++ string类的使用的更多相关文章

  1. 标准库String类

    下面的程序并没有把String类的所有成员方法实现,只参考教程写了大部分重要的成员函数. [cpp] view plain copy #include<iostream> #include ...

  2. 自己实现简单的string类

    1.前言 最近看了下<C++Primer>,觉得受益匪浅.不过纸上得来终觉浅,觉知此事须躬行.今天看了类类型,书中简单实现了String类,自己以前也学过C++,不过说来惭愧,以前都是用C ...

  3. C++ string类的实现

    c++中string类的实现 今天面试被考到了, 全给忘记了!!!   //string类的实现 #include <iostream> #include <string.h> ...

  4. String类的功能

    String类              标红的为较少出现的 1.判断功能 boolean equals(Object obj) :比较字符串内容是否相同,区分大小写 boolean equalsIg ...

  5. java基础复习:final,static,以及String类

    2.final 1)为啥String是final修饰的呢? 自己答: 答案: 主要是为了“效率” 和 “安全性” 的缘故.若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所 ...

  6. String类和StringBuffer类的区别

    首先,String和StringBuffer主要有2个区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringB ...

  7. 05_整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明

    Question: 整理String类的Length().charAt(). getChars().replace(). toUpperCase(). toLowerCase().trim().toC ...

  8. 标准C++中的string类的用法总结

    标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...

  9. String类常用方法

    1.String类的特点,字符串一旦被初始化就不会被改变. 2.String对象定义的两种方式 ①String s = "affdf";这种定义方式是在字符串常量池中创建一个Str ...

  10. 运用String类实现一个模拟用户登录程序

    package Test; import java.util.Scanner; // 模拟用户登录程序 // 思路: // 1.用两个String类分别接收用户名和密码 // 2.判断输入的用户名和密 ...

随机推荐

  1. 一步步教你如何在Ubuntu虚拟机中安装QEMU并模拟模拟arm 开发环境(一)uImage u-boot(转)

    初次接触qemu是因为工作的需要,有时候下了班,可能需要在家研究一些东西,因为博主用到arm环境,这时候博主比较小气,不愿花钱买开发板,当然博主在这里给大家的建议是,如果要真正学懂arm构架的相关知识 ...

  2. 4-初识Django Admin

    初识Django Admin Django Admin是Django为我们提供的网站后台管理应用,通常网站,个人博客,CMS等都会有个后台管理界面,这个界面只有管理员权限的用户才能进入管理网站内容.管 ...

  3. 简单易用,用Powershell劫持Windows系统快捷键

    POC:  $WshShell = New-Object -comObject WScript.Shell $Shortcut = $WshShell.CreateShortcut("des ...

  4. 【音乐欣赏】《Heart Made of Stone》 - The Tech Thieves

    曲名:Heart Made of Stone 作者:The Tech Thieves Yeah It's been years now and I wonder Is it over? Do you ...

  5. Working copy not locked; this is probably a bug, please report

    问题描述 svn: Unable to lock 'G:\chengXu\2017_Year\JFW\Easy7\src' 解决方案

  6. jquery如何将信息遍历到界面上

    1.使用的时候一定要导入juqery库 1.1 这里放置一个cdn的库 <script src="https://cdn.staticfile.org/jquery/1.10.2/jq ...

  7. 【蓝桥杯/算法训练】Sticks 剪枝算法

    剪枝算法 大概理解是通过分析问题,发现一些判断条件,避免不必要的搜索.通常应用在DFS 和 BFS 搜索算法中:剪枝策略就是寻找过滤条件,提前减少不必要的搜索路径. 问题描述 George took ...

  8. 防止不同账号之间localStorage数据错误

    set和get的时候,key后面加上用户ID

  9. sql根据字符将一行拆成多行

    SELECT B.value FROM ( SELECT [value] = CONVERT(xml,'<root><v>' + REPLACE('A,C,D', ',', ' ...

  10. AcWing 790. 数的三次方根

    #include<bits/stdc++.h> using namespace std ; int main(){ double x; cin>>x; ,r=; ) { ; i ...