一种获取可变长度整数或字符的方法

问题描述 投票:0回答:1

我正在寻找一种简单的方法来获取字符或整数。简单的方法: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

[如果无法理解,对不起:)

c++
1个回答
0
投票
效果很好,但是我仍然觉得浪费内存用于c或n和测试(并且容易出错)?但是如果这只是我认为可以的方法。如果你们中的任何一个有更好的解决方案,我将非常感激:)(也许是更多的cpp之类的?)+我必须到处使用这些“如果”
© www.soinside.com 2019 - 2024. All rights reserved.