C++ 学习笔记(三)string 类
2018-08-26 17:15:39来源:博客园 阅读 ()
在C语言中如果想要使用字符串那么有两种方法:
1.定义char型数组:char[10]; 然后将每个字符填充到对应的位置。
优点:这种方式将字符串放在内存所以每个位置都可以修改。
缺点:赋值比较麻烦,需要预先定义好长度。
2.定义char 型指针:char *str = "string test ";
优点:赋值方便,不需要定义长度。
缺点:字符串是一个常量,想要改变其中某个字符是不存在的。
以上两种方式都可以以数组的方式访问字符串中的某一个字符。然而字符串长度不定,内容也不确定的情况在开发中还是很经常遇到的,举个栗子就是文件的命名(用户二次开发的要求五花八门);使用C语言只能开一个比较大的char型数组来解决这个问题但是内心是极其不爽的。
C++ string类的牛逼之处:
1.c++兼容c语言下的字符串的玩耍方式。
2.string是一个类,那么它有自己的“方法”(函数),就是说它自带了求字符串长度、字符串转整型、查找字符等各种功能。
3.字符串合并直接相加即可,想要在字符串后面加上什么直接 str += "abc"就搞定啦。
4.不需要定义字符串长度可随意改变字符串内容。(这点很皮)
5.想要将其他字符串拷贝过去直接用'='就搞定:str = str1;这样就将str1的内容拷贝给str了。
下面将用程序演示string类的好玩之处:
#include <iostream> #include <string> using namespace std; void func(int num) { char arry[num]; int i; for(i=0;i<num;i++) arry[i] = 'a'; arry[num-1] = '\0'; cout<<arry<<endl; } int main(int argc, char **argv) { string str1 = "abc"; string str2 = "def"; string str3; cout<<"str1:"<<str1<<endl; cout<<str1+str2<<endl; str1[1] = 'a'; cout<<"str1:"<<str1<<endl; cout<<"entry str3"<<endl; cin>>str3; cout<<"str3 :"<<str3<<"\nstrlen of str3 :"<<str3.size()<<endl; int num = 0; cout<<"entry arry num"<<endl; cin>>num; func(num); system("pause"); return 0; }
1.代码66 行 将str1 与 str2直接相加可直接将其链接起来,类似C语言使用的strcat函数。当然也可以将两者相加的结果赋值给另一个string类
2.代码68行 直接修改str1中的某一个字符
3.代码72行 随机输入一个内容,长度不定的字符串string类可以很好的保存起来
4.代码73行 调用srting类size函数可计算出字符串长度
5.函数func()内可以定义一个数组,长度可以是一个变量这个在C语言中想想就好。数组字符串需要预留结束符 ’\0‘的位置那么
arry[2] == '\0'; 所以只输出了两个字符’a‘。
感受:
俗话说编程语言没有优劣之分,各有千秋。但是C++ 的srting 类以及数组长度可用变量进行定义这两点用起来确实是比C语言方便很多。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash