c++中的string
要弄清c++中的string如何工作,首先要弄清c++中的字符是如何工作的,字符是什么
#include<iostream> int main() { const char *name= "Wangtn"; //name[2]=‘s‘; std::cin.get(); }
如果没有const,下面注释掉的代码可以正常运行,但是const表示常量,所以不能进行修改。
可以看到在内存中,字符是以ACSII形式存储在内存中的,字符串的后面以00结尾,这是字符串结束的标志。在c++中单个字符用单引号(‘),字符串用双引号(")。
#include<iostream> int main() { const char *name= "Wangtn"; char name2[6] = { ‘W‘,‘a‘,‘n‘,‘g‘,‘t‘,‘n‘ }; std::cout << name2 << std::endl; //name[2]="s"; std::cin.get(); }
name2没有加上结束符0,所以打印的时候程序不知道何时终止,就会出现如下结果
如果我们做如下修改
char name2[7] = { ‘W‘,‘a‘,‘n‘,‘g‘,‘t‘,‘n‘ ,‘\0‘};
或者直接将‘\0‘换成0(没有单引号),程序正常运行。
字符串数据类型在c++标准库中有一个类叫string,是一个模板类
#include<iostream> #include<string> int main() { std::string name= "Wangtn"; std::cout << name << std::endl; std::cin.get(); }
c中有strlen,strcpy等函数来处理字符串数组,这些方法以及类似的功能都在c++的string类中有定义,可以直接调用
如果想让两个string相加,直接定义是不行的
std::string name="Wangtn"+"sau";
有两种修改方式
std::string name="Wangtn"; name+="sau";
std::string name=std::string("Wangtn")+"sau";
在函数中传入string,如果不使用引用或者指针,那么函数内的操作将不会影响传入值本身,参与计算的都是传入值的复制,如果使用引用就会改变传入值
加上const同样发现无法修改
相关推荐
abfdada 2020-08-26
Lzs 2020-10-23
聚合室 2020-11-16
零 2020-09-18
Justhavefun 2020-10-22
jacktangj 2020-10-14
ChaITSimpleLove 2020-10-06
Andrea0 2020-09-18
周游列国之仕子 2020-09-15
afanti 2020-09-16
88234852 2020-09-15
YClimb 2020-09-15
风雨断肠人 2020-09-04
卖口粥湛蓝的天空 2020-09-15
stulen 2020-09-15
pythonxuexi 2020-09-06
梦的天空 2020-08-25