C++ string 类与字符串数组异同的对比分析

string 与 字符串数组的区别

string与字符串数组的不同

  • string是一个string a="wang;中的a是一个对象
  • 字符串数组本质上是一个数组
  • string类使用起来比数组要简单
  • 不能直接把一个字符串数组赋值给另外一个数组,但是string可以
    • 字符串数组的赋值拼接使用下面两个函数进行
      • 复制字符串strcpy() 例子:strcpy(charr1,charr2) //赋值字符串charr2的值到charr1
      • 末尾添加字符串strcat() 例子:strcat(charr1,charr2)//把字符串charr2添加到字符串charr1后面
      • :如果添加或者复制后的charr1数组越界则会报错
    char charr1[20] ;// create an empty array 
    char charr2[20] = "jaguar"; // create an initialized array
    string str1; // create an empty string object
    string str2 = "panther" ;// create an initialized string 
    charrl = charr2;// INVALID, no array ass ignment 不合理的操作
    str1 = str2;// VALID, object assignment ok 合理的操作
    
  • 初始化方式不同
    • 字符串数组后面跟了 [] 而string类型后面没有跟[]
    • 初始化的关键字一个是char 一个是string
    char first_date[] = { "Le Chapon Dodu"} ;
    char second_date[] { "The Elegant Plate"};
    string third_date = { "The Bread Bowl"};
    string fourth_date { "Hank's Fine Eats"};
    
  • 字符串长度的方法不同
    int len1 = str1.size() ;// obtain length of str1
    int len2 =. strlen(charr1) ;// obtain length of charr1
    
  • 读取输入的方式不同,为什么是这样这设计到比较底层的设计,以后有空再补上(待补)
char charr1[20];
cin.getline(charr1,20);
string str;
getline(cin,str);

string与字符串数组的相同点

  • 都可以使用C-风格的方式来初始化
  • 都可以使用cin cout的方式来进行输入输出
  • 都可以使用数组的方式来访问里面的元素
char charr1 [20] ;// create an empty array
char charr2 [20] = "jaguar"; // create an initialized array
string strl;// create an empty string object
string str2 = "panther";// create an initialized string
cout << "The third letter in”<< charr2 <<”is "
<< charr2[2] << endl ;
cout << "The third letter in"<< str2 <<"is"
<< str2 [2] << endl;// use array notation

string类详解

string的使用前提条件

  • 必须包含头文件#include <string>
  • string位于名称空间std中,所以要使用using namesapce std;或者类似的语句

string的初始化

上面已经写过了,这里复制粘贴再重新写一遍,对比如下代码,观察string初始化和字符串数组初始化的异同。

  • 字符串数组后面跟了 [] 而string类型后面没有跟[]
  • 初始化的关键字一个是char 一个是string
char first_date[] = { "Le Chapon Dodu"} ;
char second_date[] { "The Elegant Plate"};
string third_date = { "The Bread Bowl"};
string fourth_date { "Hank's Fine Eats"};

string 的赋值 拼接和 附加

  • 字符串的赋值参考string的初始化字符串与数组的不同第四条
  • 字符串的拼接可以直接使用+号或者+=
    string str3;
    str3 = strl + str2;// assign str3 the joined strings
    str1 += str2;// add str2 to the end of str1
    
  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值