OJ系统输入转为字符串char*或者std::string处理(力扣Leecode和牛客网 C++,std::getline,cin.getline)

本文主要介绍在线判题系统(OJ)中,如何使用std::getline和cin.getline将输入转换为字符串。重点讲解std::getline的两个版本,包括带定界符和不带定界的用法,并对比cin.getline的使用。同时,文章还讨论了如何处理包含空格和逗号等分隔符的字符串输入。
摘要由CSDN通过智能技术生成

主要用到输入函数std::getline(…)或者cin.getline(…)。由于std::getline(…)支持std::string输出,儿cin.getline(…)输出是char*,并且两者用法几乎一样,所以本文主要讲std::getline(…),简略说明一下cin.getline(…)用法就行。

一、std::getline原理和用法

1.1 std::getline参数解析

std::getline有两个版本,分别如下代码所示:

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

 // (2)	
istream& getline (istream&  is, string& str);

1.1.1 istream& getline (istream& is, string& str, char delim)解析

其中第一个版本有三个参数,第一个参数是输入流,一般是输入std::cin;第二参数为输出到字符串str中;第三个为定界符delim,遇到定界符delim输入截止。
下面是其用法代码示例:

#include <iostream>
#include <string>

int main()
{
   
	using namespace std;
	string arrs;
	std::getline(std::cin, arrs, '#');
	cout << arrs << endl;

	return 0;
}

输出结果图
在这里插入图片描述
由此可见,输入终止的条件是遇到定界符delim,否则换行符也无法终止输入,只有遇到定界符delim才会结束输入。

1.1.2 istream& getline (istream& is, string& str)解析

另一个版本有两个参数,第一个参数是输入流,一般是输入std::cin;第二参数为输出到字符串str中;第三个参数没有,但是代码实现默认为换行符了’\n’,所以该版本无法输出换行符。
下面是其用法代码示例:

#include <iostream>
#include <string>

int main()
{
   
	using namespace std;
	string arrs;
	std::getline(std::cin, arrs);
	cout << arrs << endl;

	return 0;
}

输出结果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三公子Tjq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值