C++ 处理OJ的输入

在使用OJ(比如牛客)码代码的时候,经常碰上处理输入输出的问题,以下记录一下自己遇到的坑

1. 从输入获取一个数组,但是这个数组适用逗号(或者其他乱七八糟的,反正不是空格)

    通常出现在不给定数组长度,需要自己循环获取数组时

// 假设从屏幕获取一个以逗号分隔的数组 如5,3,4,1,1 但是数组长度没有给定

#include <iostream>
#include <string>
#include <sstream>
#include <vector>

int main()
{
    vector<int> input;       // 数组长度不固定,用vector处理
    /* 获取输入 */
    string inputStr;         // 首先接收为字符串
    cin>>inputStr;
    int pos=inputStr.find(',');
    while(string::npos != pos)
    {
        inputStr.replace(pos,1,1,' ');
        pos=inputStr.find(',');
    }                        // 将字符串中所有的逗号替换为空格
    stringstream ss;
    ss<<inputStr;            // 将处理后的字符串写入字符流, 现在是一个用空格分隔的输入
                             // 现在输入可以看作5 3 4 1 1
    int tmp=0;
    while(ss>>tmp)
    {
        input.push_back(tmp);
    }                        // 从字符流获取输入&
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值