子串或打印数组到C ++中的位置数

时间:2012-08-06 16:35:17

标签: c++ cout substr

在PHP中我记得我可以做类似

的事情

substr(string,start,length)

现在我宣布

int array[20];

如何在不使用for循环的情况下仅打印部分内容

例如。

cout << array[1 to 5] << "Here is the breaking point" << array[15 to 20] << endl;

像这样的东西

我还记得,如果printf^5之类的内容,或类似于说5的内容

2 个答案:

答案 0 :(得分:6)

您可以使用ostream_iteratorcopylink to ideone)的组合:

#include <iostream>
#include <iterator>
#include <algorithm>

using namespace std;

int main() {
    int array[] = {1,2,3,4,5,6,7,8,9,10,11,12,13};
    ostream_iterator<int> out_it (cout," ");
    copy ( array+3, array+6, out_it );
    return 0;
}

array+3语法可能看起来不寻常:这是一个等同于&array[3]的指针表达式,它会产生一个指针。因为你可以传递一对数组指针,其中C标准库需要一对迭代器,这会产生预期的结果。

答案 1 :(得分:3)

您可以复制到ostream迭代器:

std::copy(array, array+5, std::ostream_iterator(std::cout, " "));
std::cout << "Here is the breaking point";
std::copy(array+15, array+20, std::ostream_iterator<int>(std::cout, " "));