当前位置: 首页 > article >正文

C12.【C++ Cont】string类字符串的创建、输入、访问和size函数

目录

1.概念

2.string字符串的创建

示例代码

 运行结果

备注

 2.string字符串的输入

1.cin(字符串没有空格)

2.getline(可以读含有空格的字符串)

示例代码1:getline传两个参数

示例代码2:getline传三个参数

3.size函数

示例代码

运行结果

4.访问string类字符串

示例代码

 运行结果

5.附cplusplus官网的对string的介绍


1.概念

C语言用字符数组存储字符串,但C++中将字符串直接作为一种类型,也就是string类型

类比类型int:例如int a=0;可以推出string str = "Hello World!"

***使用string前一定要包含<string>头文件(不是<cstring>头文件!!!)***

2.string字符串的创建

string s1; 创建字符串
string s2 = "hello world"; 创建非空字符串

示例代码

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str1="abc";
	string str2;
	cout<<str1<<endl<<str2; 
	return 0;
}

注意 str1中的字符串不再以\0作为结束标志(这点和C语言不一样)

 运行结果

str1内容为"abc",因此打印结果不为空,str2没有内容可打印,因此打印结果为空

备注

1.string str1="abc";等价为用圆括号初始化:string str1("hello world");

2.string类字符串可以相互赋值:string str1="abc"; string str2 = str1;(但在数组中不可以这样写!)

char str1[] = "abc";
char str2[5];
//错误写法----------------------------------------

str1 = str2;//不能这样写! 地址常量不能直接赋值!

//错误写法----------------------------------------

 2.string字符串的输入

1.cin(字符串没有空格)

#include <string>
using namespace std;
int main()
{
	string str1;
	cin>>str1;
	return 0;
}

2.getline(可以读含有空格的字符串)

cplusplus网的介绍 点我跳转

从名字上理解,getline获取一行,在C++98标准中,getline有两种不同的形式,

istream& getline (istream& is, string& str);
istream& getline (istream& is, string& str, char delim);

解释:

1.istream全称input stream,为输入流,cin是istream类型的标准输入流对象

2.ostream全称output stream,为输入流,cout是ostream类型的标准输\出流对象

3.getline 函数作用:从输入流中读取一行文本信息,所有如果是在标准输入流(即键盘)中读取数
据,第一个参数可以写cin

示例代码1:getline传两个参数

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str1;
	getline(cin,str1);
	cout<<str1;
	return 0;
}

运行结果

 

此写法: istream& getline (istream& is, string& str);getline停止读取的结束标志字符(又称定界字符)(the delimitation character)默认为'\n',因此getline(cin,str1);的等价写法为getline(cin,str1,'\n');

因此istream& getline (istream& is, string& str, char delim);的第三个参数为结束标志字符,可以自己定义

示例代码2:getline传三个参数

	string str1;
	getline(cin,str1,'0');
	cout<<str1;

则getline会读取字符0前的字符串

运行结果

3.size函数

size() 函数用于获取字符串长度,调用该函数时要用 " . "点运算符

示例代码

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string str0;
	string str1="abc";
    string str2="def ghi      ";
    cout<<str0.size()<<endl;
	cout<<str1.size()<<endl;
    cout<<str2.size();
	return 0;
}

运行结果

用电操作符的原因:string 是 C++提供的一种更加复杂的封装类型,在string类型的变量中加入了操作这个字符串的各种方法(函数), 比如求字符串长度、字符串末尾插入一个字符等操作。所以要
对string类型的变量进行各种操作,就可以使用 . 操作符来使用这些函数

例如在Dev C++中输入str1.会显示大量的函数

4.访问string类字符串

可以像访问数组元素那样,通过下标逐个访问

示例代码

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str = "abcdef";
	int i = 0;
	for(i = 0; i < str.size(); i++)
	{
		cout << str[i] << " ";
	}
	return 0;
}

 运行结果

5.附cplusplus官网的对string的介绍

https://legacy.cplusplus.com/reference/string/string/


http://www.kler.cn/a/459875.html

相关文章:

  • 分数阶傅里叶变换代码 MATLAB实现
  • Linux C/C++编程-获得套接字地址、主机名称和主机信息
  • 【AI日记】25.01.02 kaggle 比赛 3-1
  • 第二十六天 自然语言处理(NLP)词嵌入(Word2Vec、GloVe)
  • 建立一个Macos载入image的实例含界面
  • 从0入门自主空中机器人-4-【PX4与Gazebo入门】
  • 利用AI进行系统性能优化:智能运维的新时代
  • Docker搭建Jenkins
  • 【Elasticsearch】数据分布与路由机制
  • 无人机驾驶证对入伍有帮助吗?
  • linux 点对点语音通话及直播推流实践三:嵌入式无GUI Linux VoIP语音对讲方案
  • 在 Ubuntu 下通过 Docker 部署 Caddy 服务器
  • 深入理解Jsoup与Selenium:Java爬虫的双剑合璧
  • kafka开机自启失败问题处理
  • STM32高级 物联网之Wi-Fi通讯
  • docker django uwsgi 报错记录
  • [openGauss 学废系列]-熟悉openGauss体系结构-权限
  • Mono里运行C#脚本5—mono_file_map_open
  • 计算机专业硕士有哪些研究方向
  • 复杂的QVariant写入文件以及从文件中读入复原
  • PCL点云库入门——PCL库点云滤波算法之体素滤波(VoxelGrid)
  • Unity学习笔记(四)如何实现角色攻击、组合攻击
  • Jenkins使用记录
  • FPGA多路MIPI转FPD-Link视频缩放拼接显示,基于IMX327+FPD953架构,提供2套工程源码和技术支持
  • 使用 Scrapy 抓取网页数据
  • WebRTC:实现浏览器与移动应用的实时通信