c/c++语言开发共享C++ string and string_view(这篇教你怎么用)

C++ string导航专用string(不可变字符串)string 变量定义string 输入输出string 求长度string c++ 转化为 c 风格字符串string 访问单个字符string 字符串拼接string 插入string 删除string 提取子字符串string 查找子串string → string_view(可变字符串)string_view 声明及定义string_view 长度string_view 修改字符串string_view 的其他行为string(不可变字符串

C++ string and string_view

导航专用

    • string(不可变字符串)
      • string 变量定义
      • string 输入输出
      • string 求长度
      • string c++ 转化为 c 风格字符串
      • string 访问单个字符
      • string 字符串拼接
      • string 插入
      • string 删除
      • string 提取子字符串
      • string 查找子串
    • string → string_view(可变字符串)
      • string_view 声明及定义
      • string_view 长度
      • string_view 修改字符串
      • string_view 的其他行为

string(不可变字符串)

string 变量定义

char text[] = "dada"; std::string str1;	      // 声明变量,默认为空字符串 "" str1 = text;			  // str1 = "dada" std::string str2{"ddd"}; // str2 = "ddd" std::string str3 = str2; // 用 str2 初始化 str1 

string 输入输出

std::string str1; // 输入空格后面的字符串无法输出,因为 cin 遇到空格后就默认输入结束 std::cin>>str1; std::cout<<str1; // 采用下面这种形式则可以输入并显示空格 std::getline(std::cin, str2); std::cout<<str2; 

string 求长度

std::string str {"djaljl"}; auto len = str.length();	// len = 6 

string c++ 转化为 c 风格字符串

std::string str1 {"fdafaga"}; auto str2 { str1 }; auto str3 = str2.c_str(); 

string 访问单个字符

std::string str {"ffgz"}; for(int i = 0; i < str.length(); ++i){	// for 赋值 	str[i] = 't'; 	} for(const auto& c : str){ 	std::cout << c << ' ';  // foreach 输出 

string 字符串拼接

std::string str1 = "ddd"; std::string str2 = "aaa"; auto str3 = str1 + str2;	// 两字符串拼接 str3 += 'd';				// 拼接单个字符 char d = 'n'; str3 += d; 					// str3 = "dddaaadn" 

string 插入

std::string str = "aeiou"; str.insert(3, "dd");		// 在下标为 3 的位置插入 "dd", str = "aeiddou" 

string 删除

std::string str{"aeiougg"}; str.erase(2, 3);	// 删除下标为 2 开始后的三个字符, str = "aegg"                     	// 不指明长度则将下标位置后的字符全部删除, 如果长度越界也是删除后面的全部字符 

string 提取子字符串

std::string str1 {"aeiouabcdef"}; auto str2 = str1.substr(3,5);	// 提取下标为 3 开始, 长度为 5 的子串 str2 = "ouabc" 

string 查找子串

std::string str {"aeiouabcdd"}; // find() int index = str.find("abc"); 	// 返回的子字符串第一次出现在字符串中的起始下标 index = 5 								// 默认从第一的字符(下标为 0 的位置)开始查找 								// 没有找到返回一个无穷大值 4294967295 index = str.find("bcd", 4);		// index = 6, 第二个参数表示从下标为 4 的地方开始查找   // rfind() int rindex = str.rfind("abc", 6); // rindex = 5, 从下标 0 开始查找到下标 6 								  // 若做找到则返回, 未找到则返回无穷大值 4294967295  // find_first_of() auto s {"string"}; int findex = str.find_first_of(s);	// 返回 str 和 s 字符串共有的字符(i)在 str 中第一次出现的下标 findex = 2 

string → string_view(可变字符串)

string_view 声明及定义

char text[] = "text"; std::string_view str{ text }; std::string_view more{ str };	// more = "text" 

string_view 长度

std::string_view str_view {"ddddd"}; auto len = str_view.length();	// len = 5 

string_view 修改字符串

std::string_view str1 {"abc"}; auto str2 {str1}; str2[1] = 's'; 	// str1 = str2 = "asc" 

string_view 的其他行为

自主学习

c/c++开发分享C++ string and string_view(这篇教你怎么用)地址:https://blog.csdn.net/weixin_48033173/article/details/112269768

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/596186.html

(0)
上一篇 2021年5月8日
下一篇 2021年5月8日

精彩推荐