《 C + + 学习录 》string 和 char 的理解 / 联系 / 区分

char   字符  

string   字符串    需要头文件   #include<string>

多个字符组成字符串

字符串变量:

        string  str1 = "RUNOOB";      //   √ 

        string  str2 = "中文";        //   √ 

        string str[] = "RUNOOB";        //     这个写法不会报错但是 ↓↓↓

    string str[] = "RUNOOB";
    cout << str[0] << endl;
    结果:RUNOOB

原因:------  (等待评论区回答)

字符变量:

        char chr = "RUNOOB";    //  × 

        char chr[] = "RUNOOB";    //  √ 

        char chr2 = "中文";    //  ×

str1 和  chr : 本质上 string和char str[]一样的

string在底层本质就是一个字符数组

长度获取

char   字符            strlen(name)

string 字符串        name.size()

char  的 内容复制替换

strcpy(s1, s2);     复制字符串s2到字符串s1

string  的 内容复制替换

str1 = str2

内容链接   strcat(s1, s2);

Eg:

string str1 = "runoob";      //   char str1 = "runoob";

string str2 = "google";     //   char str2 = "google";

string str = str1 + str2;   //   char str =  strcpy( str2, str1);

-------------------------------------------------------------------------------------------------------

char  字符  使用 ↓↓ ↓

strlen(s1);    返回字符串 s1 的长度

strcmp(s1, s2);
如果 s1 和 s2 是相同的,则返回 0;
如果 s1<s2 则返回值小于 0;
如果 s1>s2 则返回值大于 


strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置

strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置

-------------------------------------------------------------------------------------------------------

C++ 标准库提供了 string 类类型

string str1 = "runoob";

string str2 = "google";

string str3; int len ;

// 复制 str1 到 str3

str3 = str1;

// 连接 str1 和 str2

str3 = str1 + str2;

// 连接后,str3 的总长度

len = str3.size();

-------------------------------------------------------------------------------------------------------

string类提供了一系列针对字符串的操作,比如:

  •  1. append() -- 在字符串的末尾添加字符
  •  2. find() -- 在字符串中查找字符串
  •  4. insert() -- 插入字符
  •  5. length() -- 返回字符串的长度
  •  6. replace() -- 替换字符串
  •  7. substr() -- 返回某个子字符串

 等等还有很多...   用到可以再查

注意:

Vs2017 使用 strcpy 的时候会报错,提示 strcpy 是不安全的,需要用 strcpy_s 代替

// 复制str1到str2
strcpy_s(str3, str1);
 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值