栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++学习第六课--string类型操作笔记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++学习第六课--string类型操作笔记

1、string简介

string是用来处理可变长字符用的,vector是一种集合、容器或者动态数组的概念。

string类型是一个标准库中的类型,代表一个可变长字符串。

string也位于std 命名空间中。所以,要使用string类型.cpp 源文件前面也增加 using namespace std 代码行,后续就可以直接使用string类型,如果不加这行代码,每次都要使用stdstring的形式,比较麻烦。

2、string 对象上的常用操作

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

int main()
{
	string str;
	if (str.empty())//为真
	{
		cout << "str is null!" << endl;
	}
	return 0;
}

(2)size()或者length():返回字节/字节数量,可以理解成返回的是一个无符号数,unsigned int。

string str1;
cout << str.size() << endl;  //0
cout << str.length() << endl;//0
string str2;
str2 = "jinxueHou";
cout << str2.size() << endl;//9
cout << str2.length() << endl;//9

(3)s[n]:返回s中的第n字符(n是一个整型值) 字符位置从0开始计算,位置值n也必须小于.size(),如果用下标引用超过这个范围,或者用下标访问一个""的string,都会产生不可预测的结果。

string s3 = "I love China"; 
if (s3.size() > 4) 
{
    cout << s3[4] << endl; //打印'v'
    s3[4] = 'V';
}
cout << s3 << endl; //I loVe China

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

string s1 = "I love you";
string s2 = " my motherland";
string s3 = s1+s2;  //s3=“I love you my motherland”
cout << s3 << endl;

(5)s1 = s2:字符串对象赋值,用s2里面的内容取代原来s1里面的内容。

string s1 = "I love you";
string s2 = " my motherland";
s1 = s2;//s1 = " my motherland";

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

string s1 = "abc";
string s2 = "abc";
if(s1 == s2)//条件成立
{
   cout << "s1==s2" << endl;
}

如果把s1或者s2字符串中的某个字符改为大写,则条件就不成立了。

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

string s1 = "abc";
string s2 = "Abc";
if(s1 != s2)//条件成立
{
   cout << "s1!=s2" << endl;
}

(8)s.c_str():返回一个字符取s中的内容指针(也就是说这个内容实际上就是 stnng 字符串里的 内容),返回的是一个指向正规C符串的常量指针,所以是以‘’结尾的.

这个函数是为了与C语言兼容,在C语言中没有string 类型,所以得通过string类对象的成员函数c_str把string对象转换成C中的字符串样式。

string s2 = "abcdefgh";
const char* p = s2.c_str();
char str[100];
strcpy_s(str,sizeof(str),p);//字符串内容复制到str
cout << str << endl;//"abcdefgh";
cout << strlen(str) << endl;//打印实际字符串内容长度:8个字节

(9)读写string对象。

string s1;

cin >> s1;  //输入123回车
cout  << s1 << endl; //输出123字符串

(10)字面值和 string 相加。

string s1 = "abc";
string s2 = "defg";
string s3 = "and"+s2+'e';
cout << s3 << endl;

以后讲解类的时候会讲到隐式类型转换,实际上在这里”and”和 'e' (字符串和单个字符〉都被转换成了string对象参与加法运算。

但有一点还是要注意一下:

string s1 = "abc";
string s2 = "defgh";
string s3 = "abc" + "defgh";//语法上不允许,会报错
string s4 = "abc" + s1 + "def";//中间夹杂一个string对象,语法上允许
string s5 = "abc"” + "defgh" + s2;//报错,两个字符串不能紧挨着

(11)范围for针对string的使用。

string s1 = "I love China";
for (auto &c : s1)//c的类型是字符char
{
	cout << c << endl;
}

把小写字符串转为大写字符串:

int main()
{
	string s1 = "I love China";
	for (auto& c : s1)
	{
		c = toupper(c);
	}
	cout << s1 << endl;

	return 0;
}

到此,字符串string的常用操作说明已完成。

2022.06.25结。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/989728.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号