首页 > 编程语言 >C++黑马程序员——P189-192. string容器 构造函数,赋值,拼接,查找和替换

C++黑马程序员——P189-192. string容器 构造函数,赋值,拼接,查找和替换

时间:2023-07-07 17:34:35浏览次数:48  
标签:string str1 P189 查找 字符串 构造函数 cout

  • P189. string容器——构造函数
  • P190. ...——赋值操作
  • P191. ...——字符串拼接
  • P192. ...——字符串查找和替换
  • P189. 构造函数

  

——————————————————————————————————————————————————————————

  

——————————————————————————————————————————————————————————

 1 #include <iostream>
 2 #include <string>
 3 
 4 using namespace std;
 5 
 6 void test01()
 7 {
 8     string s1;  //默认构造
 9 
10     const char* str = "hello world";
11     string s2(str); //第二种构造方法
12     cout << "s2 = " << s2 << endl;
13 
14     string s3(s2);  //拷贝构造
15     cout << "s3 = " << s3 << endl;
16 
17     string s4(10, 'a'); //10个a
18     cout << "s4 = " << s4 << endl;
19 }
20 
21 int main() {
22     test01();
23     return 0;
24 }

res:

  

 

  • P190. 赋值操作

  

——————————————————————————————————————————————————————————

 1 void test01()
 2 {
 3     string str1;
 4     str1 = "hello world";   //char*类型字符串 赋值给string类型字符串
 5     cout << "str1 = " << str1 << endl;
 6 
 7     string str2;
 8     str2 = str1;    
 9     cout << "str2 = " << str2 << endl;
10 
11     string str3;
12     str3 = 'a';     //字符赋值给字符串
13     cout << "str3 = " << str3 << endl;
14 
15     string str4;
16     str4.assign("hello C++");
17     cout << "str4 = " << str4 << endl;
18 
19     string str5;
20     str5.assign("hello C++", 7);    //把字符串的前n个字符赋值给当前字符串
21     cout << "str5 = " << str5 << endl;
22 
23     string str6;
24     str6.assign(str5);
25     cout << "str6 = " << str6 << endl;
26 
27     string str7;
28     str7.assign(10, 'w');   //n个字符 赋值给字符串
29     cout << "str7 = " << str7 << endl;
30 }
31 
32 int main() {
33     test01();
34     return 0;
35 }

res:

  

 

总结:‘=’ 和 assign

 

  • P191. 字符串拼接

  

——————————————————————————————————————————————————————————

 1 void test01()
 2 {
 3     // +=
 4     string str1 = "我";
 5     str1 += "爱玩游戏"; //+= char*
 6     str1 += ':';    //+= 字符 
 7 
 8     string str2 = "辐射4";
 9     str1 += str2;   //+= string字符串
10     cout << str1 << endl;
11 
12     // append
13     string str3 = "I";
14     str3.append(" like ");
15     str3.append("game abced", 6);   //字符串的前6个字符
16     cout << str3 << endl;
17     str3.append(str2);
18     str3.append(str2, 0, 2);    //从第0个位置开始的2个字符(C++中一个汉字占2个字符)
19     cout << str3 << endl;
20 }
21 
22 int main() {
23     test01();
24     return 0;
25 }

res:

  

总结: ‘+=’ 和 append

 

  • P192. 字符串查找和替换

  

——————————————————————————————————————————————————————————

 1 //字符串查找和替换
 2 //1. 查找
 3 void test01() {
 4     string str1 = "abcdefgde";
 5     int pos = str1.find("de");
 6     cout << pos << endl;
 7     pos = str1.find("df");
 8     cout << pos << endl;
 9     //rfind 和 find 的区别
10     //rfind是从右往左查找,find是从左往右查找 (返回的都是 查找的字符串的 第一个字符的位置)
11     pos = str1.rfind("de");
12     cout << pos << endl;
13 }
14 
15 //2. 替换
16 void test02() {
17     string str1 = "abcdefg";
18     str1.replace(1, 3, "1111");
19     cout << str1 << endl;
20 }
21 
22 int main() {
23     test01();
24     test02();
25     return 0;
26 }

res:

  

 

  

(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)

 

标签:string,str1,P189,查找,字符串,构造函数,cout
From: https://www.cnblogs.com/wjjgame/p/17533514.html

相关文章

  • API和String字符串介绍
    API1、如何使用Java已经写好的东西(方法,类)API(Applicationprogramminginterface):应用程序编程接口简单理解:API就是别人已经写好了的东西,我们不需要自己编写,直接使用即可啊Publicstaticvoidmain(String[]args){ Randomr=newRandom(); intnumber=r.nextInt(100);}......
  • Python如何实现docstring
    docPython语言从排版上看强制要求了一些书写规范,算是强制赋予了每个程序员一个"代码洁癖"。作为规范的一部分,可以在在类函数的开始增加注释,并且语言本身为这种注释做了"背书":可以通过help展示这个帮助文档的内容。这个本来是Python一个很细小的功能,也是一个很有意思的语法糖(因......
  • 【补题记录】 Codeforces Round 797 (Div. 3) F Shifting String(置换环)
    CodeforcesRound797(Div.3)FShiftingString思路:根据这个排列进行替换的操作可以往置换环考虑,就是对于每一段字串,它的变换都是有规律的,经过一定的操作之后都会回到原点,可以想象转化成图上问题。参考ygg的题解,直接用链表模拟这个转化的过程,然后暴力计数,因为要满足所有点都......
  • SPOJ Substrings 题解
    \(\text{SAM}\)入门好题。首先我们需要知道几个关于\(\text{SAM}\)的结论。结论1:题目中的\(f(x)\)单调下降。显然,对于长度为\(x\)的子串,其必存在一个\(x-1\)的后缀,这个后缀的\(\text{endpos}\)集合肯定包含子串的\(\text{endpos}\)集合,所以必有\(f(x-1)\le......
  • 60.C++中新增了string,它与C语言中的 char *有什么区别吗?它是如何实现的?
    60.C++中新增了string,它与C语言中的char*有什么区别吗?它是如何实现的?1.实现方式:string是一种抽象类,它的实现由std::string和char*转换而来。在实现上,std::string内部通常会使用动态数组来存储字符串,可以动态地分配内存。同时,std::string还可能使用一些优化技术,如内部缓存和......
  • 重写JSON.stringify与JSON.parse使其支持解析function类型
    constJSONStringify=(option)=>{returnJSON.stringify(option,(key,val)=>{//处理函数丢失问题if(typeofval==='function'){return`${val}`;}//处理undefined丢失问......
  • 58.类成员初始化方式?构造函数的执行顺序 ?为什么用成员初始化列表会快一些?
    58.类成员初始化方式?构造函数的执行顺序?为什么用成员初始化列表会快一些?1.类成员初始化方式1.1初始化方式一:默认时初始化如果类成员没有被显式初始化,将会使用默认初始化。默认初始化指没有提供初始化式的情况下,将使用默认值进行初始化。对于基本数据类型(如整数、浮点数等),默认......
  • VC中BSTR、Char和CString类型的转换(太牛了)
    [分享]Vc中BSTR,char和CString的转换1、char*转换成CString若将char*转换成CString,除了直接赋值外,还可使用CString::format进行。例如:charchArray[]="Thisisatest";char*p="Thisisatest";或LPSTRp="Thisisatest";或在已定义Unicode应的用程序中TCHAR......
  • 数据库问题之“字符编码问题 Cause: java.sql.SQLException: Incorrect string value:
     1)表1和表2的产品名称[数据库字段]字符编译方式不一致①问题 org.springframework.jdbc.UncategorizedSQLException:Errorupdatingdatabase.Cause:java.sql.SQLException:Incorrectstringvalue:'\xF0\x9F\x8E\x81\xE7\x88...'forcolumn'product_name'atr......
  • [问题记录] C# string.format null值变量值需要显示在占位符
    起因是在C#程序里执行存储过程,恰好参数值里有NULL值变量,可是null值没有填充到占位符上。网上一看,好多都是添加参数的方法(command.Parameters.Add(),DBNull.value)去解决这个问题,实在不想搞的这么麻烦,我就只想简单点。 比如string.Format(@"EXECXXX{0},{1},{2}",parameter......