比如有一个已经初始化的长度为20的int数组 然后我只想要前10个数值 这样调用
for(int a:arr)
cout<<a<<endl;
的时候只输出前十个
怎么做?
上面的for循环只是举个例子 要实质性的截断方法有没有啊。。
int i=0;
for(int a:arr)
{
if (i++ > 10) break;
cout<<a<<endl;
}
“int a:arr”是什么?只要输出前10个最方便的就是for里用计次循环。
换成按下标遍历
for(i=0;i<10;i++)
cout<<arr[i]<<endl;
控制一下循环结束条件就可以了,当然,如果想把剩余10的内存释放回去,可以用c库的realloc调整
再循环里面控制一下就好了~
不过你的for循环怎么这样写呢?
你直接strncpy复制的时候指定长度
strncpy(buf, attr, 10);
用C库的realloc 可以截断。
第十一个数据改成'\0'
(๑• . •๑)
如果是要输出前n项只要用for循环控制一下就好了。如果是要任意截断的话我认为可以先把数组存入一个vector容器,
然后就可以用vector的迭代器实现截取某一段了(c++小白,刚看完vector)。