c++中的string

要弄清c++中的string如何工作,首先要弄清c++中的字符是如何工作的,字符是什么

#include<iostream>

int main()
{
    const char *name= "Wangtn";
    //name[2]='s';
    std::cin.get();
}

如果没有const,下面注释掉的代码可以正常运行,但是const表示常量,所以不能进行修改。

c++中的string

 

 

可以看到在内存中,字符是以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,所以打印的时候程序不知道何时终止,就会出现如下结果

c++中的string

 

 c++中的string

 

 如果我们做如下修改

char name2[7] = { 'W','a','n','g','t','n' ,''};

或者直接将''换成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,如果不使用引用或者指针,那么函数内的操作将不会影响传入值本身,参与计算的都是传入值的复制,如果使用引用就会改变传入值

c++中的string

 

 c++中的string

 

 加上const同样发现无法修改

c++中的string

 

原文链接: https://www.cnblogs.com/wangtianning1223/p/12697015.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    c++中的string

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/341927

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午1:20
下一篇 2023年3月2日 上午1:20

相关推荐