我正在寻找一种简单的方法来获取字符或整数。简单的方法:k9asd8f0f
a[0]=k
a[1]=9 //if its digit then '9'-'0'=9
a[2]=a
a[3]=s
...
但是真正的大问题始于:k90asd80f10k
我希望将其另存为:
a[0]=k
a[1]=90//!!
a[2]=a
a[3]=s
a[4]=d
a[5]=80//!!
…
所以有一个大问题,我正试图得到类似的东西
int n;
cin>>n;
但这将使我的角色归零,并且类似:
char n;
cin>>(int)n;
不起作用。
我知道我可以搜索下一个变量,所以
while(1)
{
int i=1;
char n;
cin>>n;
if(n=='\n') break;
while(n>='0' || n<= '9')
{
n=i*(n-'0');//this is only for double digits as char range doesn't allow more
i*=10;
}
i=1
cout << n;
}
但是我的文本指针有问题-例如,如果我有a10bdf,我将得到10 df的输出(我会错过两位数后的第一个)是否有任何快速/清晰的方法来解决问题?
重要:它不必是char数组,我更喜欢int数组,而字母是在输入它的位置的“名称”:我正在尝试实现:示例输入:52v230u24p42
,每个字母的含义如下:
id->52
velocity->230
unions->24
points->42
[如果无法理解,对不起:)