c++中的string(2)

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

 将鼠标放在带马上可以看到,虽然我们的字符串包含六个字母,但是他的长度为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();
}

猜你喜欢

转载自www.cnblogs.com/wangtianning1223/p/12714684.html
今日推荐