c/c++语言开发共享string类型介绍

一、前言 int,float,char,C++标准库提供的类型:string,vector。 string:可变长字符串的处理;vector一种集合或者容器的概念。 二、string类型简介 C++标准库中的类型,代表一个可变长的字符串 char str[100] = “I Love China”; …

一、前言

int,float,char,c++标准库提供的类型:string,vector。

string:可变长字符串的处理;vector一种集合或者容器的概念。

二、string类型简介

c++标准库中的类型,代表一个可变长的字符串

char str[100] = “i love china”; // c语言用法

三、定义和初始化string对象

%ignore_pre_1%

 

四、string对象上的操作

(1)判断是否为空empty(),返回的布尔值

string s1;  if(s1.empty()) // 成立  {      cout << “s1字符串为空” <<endl;  }

(2)size()/length():返回字节/字符数量,代表该字符串的长度。unsigned int

string s1;  cout << s1.size() << endl; // 0  cout << s1.length() << endl; // 0  string s2 = “我爱中国”;  cout << s2.size() << endl;// 8  cout << s2.length() << endl; // 8  string s3 = “i love china”;  cout << s3.size() << endl;// 12  cout << s3.length() << endl; // 12

(3)s[n]:返回s中的第n个字符,(n是个整型值),n代表的是一个位置,位置从0开始,到size()-1;

如果用下标n超过这个范围的内容,或者本来是一个空字符串,你用s[n]去访问,都会产生不可预测的作用。

string s3 = “i love china”;  if(s3.size()>4)  {      cout << s3[4] << endl;      s3[4] = ‘2’;  }  cout << s3 << endl; // i lowe china

(4)s1+s2:字符串的连接,返回连接之后结果,其实就是得到一个新的string对象。

string s4 = “abcd”;  string s5 = “efgk”  string s6 = s4 + s5;  cout << s6 <<endl;

(5)s1 = s2:字符串对象赋值,用s2中的内容取代s1中的内容

string s4 = “abcd”;  string s5 = “efgk”  s5 = s4;  cout << s5 <<endl; // abcd

(6)s1 == s2:判断两个字符串是否相等。大小写敏感:也就是大小写字符跟小写字符是两个不同的字符。相等:长度相同,字符全相同。

string s4 = “abcd”;  string s5 = “abcd”  if(s5 == s4)  {    cout << “s4 == s5” <<endl; // abcd  }

(7)s1 != s2:判断两个字符串是否不相等

string s4 = “abcd”;  string s5 = “abcd”  if(s5 != s4)  {      cout << “s4 != s5” <<endl; // abcd  }

(8)s.c_str():返回一个字符串s中的内容指针,返回一个指向正规c字符串的指针常亮,也就是以存储。

这个函数的引入是为了与c语言兼容,在c语言中没有string类型,所以我们需要通过string对象的c_str()成员函数将string对象转换为c语言的字符串样式。

string s4 = “abcd”;  const char *p = s4.c_str(); // abcd  char str[100];  strcpy_s(str,sizeof(str),p);  cout << str << endl;    string s11(str); // 用c语言的字符串数组初始化string类型。

(9)读写string对象

string s1;  cin >> s1; // 从键盘输入  cout << s1 << endl;

(10)字面值和string相加

string str1 = “abc”;  string str2 = “def”;  string str3 = s1 + “ and ” + s2 + ‘e’; // 隐式类型转换  cout << str3 << endl;  // abc and defe;
// string s1 = “abc” + “def”; // 语法上不允许

(11)范围for针对string的使用:c++11提供了范围for:能够遍历一个序列的每一个元素。string可以看成一个字符序列。

string s1 = “i love china”;  for(auto c:s1) // auto:变量类型自动推断  {      cout << c << endl; // 每次输出一个字符,换行  }    for(auto &c:s1) // auto:变量类型自动推断  {      // toupper()把小写字符转换为大写,大写字符不变      c = toupper(c); // 因为c是一个引用,所以这相当于改变s1中的值  }  cout << s1 << endl;

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/c-cdevelopment/605086.html

(0)
上一篇 2021年5月13日
下一篇 2021年5月13日

精彩推荐