资讯动态

【c++】c语言入门到c++使用高手:深入学习C++之基本语言(七)

发布时间:2026/10/23 4:03:10 来源:尧图企业网站定制
第二章 基本语言第七节 string类型介绍1. 前言c标准库: string, vectorstring: 可变长字符串的处理, vector是一种集合或者容器的概念2. string类型简介c标准库中的类型, 代表一个可变长字符串string这个类型可以看成一个类类型(类似于struct)3. 定义和初始化string对象5种初始化方式#includeiostream#includestringusing namespace std;intmain(){// 默认初始化, s1:空串, 表示里边没有字符string s1;// 把字符串I am Felaim!这个字符串内容拷贝到了s2代表的一段内存中// 拷贝时不包括末尾的\0string s2I am Felaim!;// 和s2的写法一样string s3{I am Felaim!};// 直接把s2中的内容拷贝到了s4所代表的一段内存中string s4s2;// aaaaaa,把s5初始化为连续num个字符,a组成的字符串// 这种方式不太推荐,因为会在系统内部创建临时对象intnum6;strings5(num,a);return0;}4. string对象上的操作判断是否为空empty(),返回的布尔值#includeiostream#includestringusing namespace std;intmain(){// 默认初始化, s1:空串, 表示里边没有字符string s1;if(s1.empty()){couts1 is empty!endl;}return0;}size()/length():返回字节/字符数量, 代表字符串的长度 unsigned int#includeiostream#includestringusing namespace std;intmain(){// 默认初始化, s1:空串, 表示里边没有字符string s1;couts1.size()endl;//0couts1.length()endl;//0s1中国;couts1.size()endl;//6couts1.length()endl;//6s1ff;couts1.size()endl;//2couts1.length()endl;//2s1I am Felaim;couts1.size()endl;//11couts1.length()endl;//11return0;}s[n]:返回s中的第n个字符(n个整型值),n代表的是一个位置,位置从0开始,到size()-1如果不小心用下标n超过了对应的范围,或者访问空字符串,都会导致结果不可控#includeiostream#includestringusing namespace std;intmain(){string s1I am Felaim;;if(s1.size()5){couts1[5]endl;s1[5]9;couts1endl;}return0;}s1s2:字符串的连接,返回连接后的结果,其实就是得到一个新的string对象#includeiostream#includestringusing namespace std;intmain(){string s1I am Felaim!;;string s2hahahaha;string s3s1s2;couts3endl;return0;}s1 s2;字符串对象的赋值,用s2里面的内容取代s1里面的内容#includeiostream#includestringusing namespace std;intmain(){string s1I am Felaim!;;string s2hahaha;s1s2;couts1endl;return0;}s1 s2,判断两个字符串是否相等,大小写敏感:也就是大小写字符是不同的两个字符 abc不等于Abc,相等:长度相同,字符也得全部相同#includeiostream#includestringusing namespace std;intmain(){string s1HAHAHA;;string s2hahaha;if(s1s2){couts1 s2endl;}else{couts1 ! s2endl;}return0;}s1 ! s2: 判断两个字符串不相等#includeiostream#includestringusing namespace std;intmain(){string s1HAHAHA;;string s2hahaha;if(s1!s2){couts1 ! s2endl;}else{couts1 s2endl;}return0;}s.c_str():返回一个字符串s中的内容指针,返回一个指向正规的c字符串的指针常量,也就是以\0结尾,这个函数的引入是为了与字符串兼容,在c语言中没有string类型,所以通过string类对象的c_str()成员函数,把string对象转换成c语言中的字符串样式#includeiostream#includestring#includecstringusing namespace std;intmain(){string s1HAHAHA;;string s2hahaha;constchar*ps1.c_str();charstr[100];strcpy(str,p);// linux 不能用这个函数?// strcpy_s(str, sizeof(str), p);coutstrendl;// 这也是一种初始话方式string s3{str};couts3endl;string s4str;couts4endl;return0;}读写string对象#includeiostream#includestring#includecstringusing namespace std;intmain(){string s1;// 空格会被截断掉cins1;couts1endl;return0;}字面值和string相加#includeiostream#includestringusing namespace std;intmain(){string s1abc;string s2defg;string s3s1 and s2c;couts3endl;//abc and defgc// 这种方式不可行,语法不允许// string s4 12 dd;// 中间加一个string类型就可以使用(隐式类型转换)string s412s1dd;//可行string s5dds112dd;//不可行// string s5 dd 12 s1 dd;return0;}范围for针对string的使用,c11中提供了范围for,能够遍历一个序列中的每一个元素#includeiostream#includestringusing namespace std;intmain(){string s1I am Felaim!;// auto 变量类型自动推动for(autoc:s1){coutc;}coutendl;for(autoc:s1){// 转成大写字符ctoupper(c);}couts1endl;return0;}

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑