首页 > 编程语言 > 详细

c++中的string(2)

时间:2020-04-16 19:26:23      阅读:53      评论:0      收藏:0      [点我收藏+]

字符串本质上是双引号中的字符集合。

技术分享图片

 

 

 将鼠标放在带马上可以看到,虽然我们的字符串包含六个字母,但是他的长度为7,这是因为字符串结尾需要一个标志位,表示字符串的结束,这个标志就是\0,如果将"\0"加入到字符串中间,那么打印时就会出现如下效果

#include<iostream>
#include<string>

int main()
{
    "Wangtn";
    std::cout << "Wang\0tn" << std::endl;
    std::cin.get();
}

 

技术分享图片

 

 在内存中进行查看

#include<iostream>
#include<string>
#include<stdlib.h>

int main()
{
    const char name[8]="Wang\0tn";
    std::cout << name << std::endl;
    std::cin.get();
}

技术分享图片

 

 可以看到有两个".",几种不同char类型

#include<iostream>
#include<string>
#include<stdlib.h>
int main()
{
    const char* name = "Wangtn";//utf8  1byte per character
    const wchar_t* name2 = L"Wangtn";
    const char16_t* name3 = u"Wangtn";//utf16 2byte per character
    const char32_t* name4 = U"Wangtn";//utf32 4byte per character
    std::cin.get();
}

字符串拼接,c++11提供了更简洁的方法,不再需要使用强制类型转换

std::string name=std::string("Wangtn")+"sss";
#include<iostream>
#include<string>
#include<stdlib.h>
int main()
{
    using namespace std::string_literals;
    std::string name = "Wangtn"s + "sss";
    std::wstring name1 = L"Wangtn"s + L"sss";
    std::u32string name1 = U"Wangtn"s + U"sss";
    std::cin.get();
}

原样打印字符串

#include<iostream>
#include<string>
#include<stdlib.h>
int main()
{
    const char *example = R"(Line1   asc
Line2
Line3)";
    std::cout << example << std::endl;
    std::cin.get();
}

技术分享图片

 

 另一种写法

#include<iostream>
#include<string>
#include<stdlib.h>
int main()
{
    const char *example = "Line1\n"
        "sss\n"
        "ssssss";
    std::cout << example << std::endl;
    std::cin.get();
}

 

c++中的string(2)

原文:https://www.cnblogs.com/wangtianning1223/p/12714684.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!