【发布时间】:2013-11-03 21:28:46
【问题描述】:
我正在尝试计算输入流中的字符数,直到第一个非数字,而不实际从流中提取字符。输入可以包含任意数量的字符。我需要这样做以确定在将数字存储在数组中的流中之前是否应该增长一个动态数组。
我仅限于以下库:iostream、cstring、cctype
我在想这样的事情:
int counter = 0;
const char * s = cin.getline();
while( s[counter] <= '0' || s[counter] >= '9' )
{
counter++;
}
但我在让它工作时遇到了一些麻烦。任何建议将不胜感激!
【问题讨论】:
-
我会根据需要增加动态数组!复制字符非常快,如果数组呈指数增长,整体复杂度仍然是线性的。
-
这是有道理的。我不知道为什么我不只是这样做。出于某种原因,我在脑海中想到我必须在提取之前调整大小。我只是添加了一个简单的: if( maxSize == counter ){ Grow();并且它现在工作正常。谢谢!
标签: c++