c++以空格分开的输入数组_C++处理输入字符串并转为数组的操作

本文分享了解决如何在C++中处理未知长度的输入,将一行包含空格分隔的数字转换为数组,例如11 -2 657。通过getchar()函数逐个读取并存储整数,同时讨论了getchar()的原理和适用场景。还提供了另一种方法处理字符串形式的输入,适用于非数字字符分隔的情况。
摘要由CSDN通过智能技术生成

最近在做题的时候在处理输入时遇到一个令人头疼的问题,今天解决了和大家分享一下:

比如题目要求的输入为一行数,数与数之间用空格间隔开,数的个数未知,数也有正有负:

11 -2 65 7

那么如何把这个输入保存到数组a中,且数组a中的值为a[0]=11,a[1]=-2,a[3]=65,a[4]=7呢?

先看代码:

#include

#include

using namespace std;

int main()

{

int a[20];

int i = 0;

cin>>a[i++];

while(getchar()!='\n')

{

cin>>a[i++];

}

for(int j=0;j

{

cout<

}

}

关于getchar()函数:

该函数返回输入流的每一个字符,在这段程序中当该函数判断当前字符不是换行符时,则输入流cin向数组写入一个数字。

有的同学可能会问为什么这里会写一整个数字而不是一个字符,这里说一些我的见解,我们平时使用cin时,一般都是这样使用的:cin>>a>>b,在控制台实际输入时a和b是以空格分开的,也就是说cin会一直读入字符直到遇到空格或换行符,那么我们的程序里的cin也就一直读入字符了。

其他问题:

该程序可以处理以任何字符分隔数字的字符串,包括冒号分号甚至小数点,目前还不知原因为何

补充:C++输入未知长度字符串存入数组

记录C++学习过程的问题,方便以后自己查看

int main()

{

string str;

char temp;

while((temp=cin.get())!='\n')

{

str +=temp;

}

const int LEN =str.length();

char* dest = new char[LEN];

for(int i = 0;i

{

dest[i]=str[i];

cout<

}

delete 【】dest;

return 0;

}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值