【发布时间】:2013-11-22 18:09:36
【问题描述】:
我正在编写一个程序,它将获取文件中的每 3 个数字并将它们转换为它们的 ASCII 符号。所以我想我可以将这些数字读入一个字符数组,然后将每 3 个元素设为第二个数组中的 1 个元素,将它们转换为 int,然后将它们打印为 char。
但是,我坚持采用每 3 个元素。这是我这部分的代码 sn-p:
char arry[] = "073102109109112"; <--example string read from a file
char arryNew[16] = {0};
for(int i = 0; i <= sizeof(arryNew); i++){
strncpy(arryNew, arry, 3);
arryNew[i+3]='\0';
puts(arryNew);
}
这段代码给我的是前 3 个数字,十五次。我尝试将 i 增加 3,这给了我前 3 个数字 5 次。如何使用 strncpy 编写一个 for 循环,以便在复制 n 个字符后移动到下一个 n 个字符?
【问题讨论】:
-
strncpy(arryNew, arry+i*3, 3);?并删除arryNew[i+3]='\0'; -
这行得通!几乎!它在正确的073,102,109等之后打印出一些随机字符。为什么?
-
@supersaidso 你能包含输出吗?
-
073 102 109 109 112(奇怪的箭头东西不能复制)@
-
嗯,在我设置 arryNew[5] 而不是 arryNew[16] 之后,那些随机字符消失了。想知道为什么!