0
我有问题的值分配给一个二维数组的字符串。以下是代码:二维数组的字符串和Strcpy错误?
Char array[]= "Nary had a little lamb";
int chunkSize = 4;
char inventory[totalRuns][chunkSize];
subString(result, array,0,0+chunkSize);
printf("CHUNK 1 = %s\n",result); //Prints "Nary"
strncpy(inventory[0],result,chunkSize);
memset(result, '\0', strlen(result));
subString(result, array,pos,pos+chunkSize);
printf("CHUNK 2 = %s\n",result); // Prints " had"
strncpy(inventory[1],result,chunkSize);
和函数子:
char *subString(char* putHere, char* request,int start,int end){
char* loc = request+start;
char* end_loc = request+end;
memcpy(putHere, loc, end_loc-loc);
return putHere;
}
当我运行该代码时,出放为
CHUNK 1 =进制
CHUNK 2 =有
这是正确的,但是当我打印清单,我得到
inventory[0]=Nary had //Should be just "Nary"
inventory[1]= had //correct
任何想法林做错了什么?
好的,所以如果我正确理解这一点,我必须在每次清点结束后追加一个终止字符到strncpy后? – p0ny 2013-03-05 22:23:58
是的。你需要有足够的空间,所以声明'char inventory [totalRuns] [chunkSize + 1];'。那么,如果你初始化整个库存,你不需要添加0-终结符,因为它们已经在那里了。 – 2013-03-05 22:28:11
现在就开始工作吧!谢谢你的帮助! – p0ny 2013-03-05 22:36:22