【发布时间】:2013-02-11 22:01:58
【问题描述】:
我目前有这段代码,用户可以在其中输入一个数字来表示他们想要在数组中包含多少个数字。然后是“12345”,但是在写完它大约一秒钟后,我意识到这只有在他们输入数字 0-9 时才有效,任何两位数或更多的数字都不起作用。
int numberOfValues;
cout << "Please enter the amount of integers you want in the array" << endl;
cin >> numberOfValues;
int valuesArray[numberOfValues];
string valuesString;
cout << "Please Enter " << numberOfValues << " numbers" << endl;
cin>>valuesString;
for(int i = 0; i < numberOfValues; i++)
{
valuesArray[i] = valuesString[i];
}
return valuesArray;
我认为最好的方法是让用户输入用逗号分隔的数字,然后将它们拆分(iv 在 java 中完成了同样的小 porgram,并尝试将其更改为 C++ 以供我自己学习) 就像在 java 中我使用了 string.split(",") 我想知道 c++ 中是否有类似的东西??
【问题讨论】:
-
如果您愿意使用库,我认为
boost::split将是您首先要看的东西。这个问题证明了这一点,还有许多其他解决方案:stackoverflow.com/questions/236129/splitting-a-string-in-c -
谢谢,但我不想更多地使用外部库来学习一些核心内容是如何完成的,而不是仅仅使用一个库来为我做这件事,无论如何,我会看看其他一些方法这样做,但我正在寻找一种简单的好方法来做到这一点,因为我看到其中一些就像 80 行代码来拆分一个不能正确的字符串.. 对吗??
-
此答案仅使用 C++ 标准库:stackoverflow.com/a/236803/78845