文字列(たとえば "1234567890")を整数の配列に変換する必要がありますが、要素の幅はユーザーによって決定されます。ユーザは、それがあろう1を通過した場合文字列を決定された幅の整数配列に変換する方法
:SO 2 1 2 3 4 5 6 7 8 9 0
Iは配列を有する:12 34 56 78 90
3:1 234 567 890
4:12 3456 7890
など、私が試した何
:
#include <iostream>
using namespace std;
int main()
{
string textNumber;
int size;
cin >> textNumber;
cin >> size;
int length = textNumber.length();
int lenghtOfArray = length/size + (length % size ? 1 : 0);
int myArray[lenghtOfArray] = {0};
int move = lenghtOfArray- (size * lenghtOfArray - length);
int copySize = size;
int k = 0;
for(int i=0; i < length;i++) {
if(--copySize && !move){
myArray[k] += (int)textNumber[i]-48;
} else {
myArray[k] += (int)textNumber[i]-48;
++k;
copySize = size;
if(move) --move;
continue;
}
myArray[k] *= 10;
}
myArray[k] += (int)(textNumber[0]-48);
for(int i=0; i < lenghtOfArray; i++) {
cout << myArray[i] << " ";
}
}
しかし、すべてのケース(I-t-─w--o-r-k-s-─o-n-l-y-─f-o-r-─s-i-z-e-=œ2-)では機能しません。
_doesn't work_を定義します。 –
[mcve]を入力してください。提供するコードで発生したエラーを再現できる場合は、ヘルプを提供するのが最も簡単です。そのコードをコピー/ペーストしてコンパイルしようとすると、あなたの実際の質問にはあてはまらないコンパイルエラーが発生します。 – user463035818
つまり、なぜ一連の部分文字列を解析するだけではないのですか。私は本当にそれを難解な解決策と見なしません。 – Fallenreaper