我试图使用strcpy将字符串放入字符串数组中。 这是我对数组的定义:
char movies[10][150], movie[150];
int i = 0, j = 0;
currentChar = getchar();
while(currentChar != EOF)
{
while(currentChar!='\n')
{
movie[i] = currentChar;
currentChar = getchar();
i++;
}
strcpy(*(movies + j*10*15), (char*)movie);
j++;
currentChar = getchar();
}
尝试在c ++控制台中调试它,我得到的“缓冲区太小了”'消息。
注意:我的输入是 " Django未剃须:有点血腥,但总体来说是一部坚实的电影" 不超过150个字符。
感谢您的帮助。
编辑:编辑的代码以显示完整图片
答案 0 :(得分:3)
您应该使用此代码:
strcpy(movies[j], movie);
恕我直言,定义一个二维数组然后使用它就好像它是一个定义为char [1500]的大型一维数组一样。
另外,您使用哪种编译器为C
生成此类消息 - 代码?
答案 1 :(得分:0)
您的复制功能应该是:
strcpy((movies + j*150), (char*)movie);
答案 2 :(得分:0)
最后我解决了这个问题。显然,在电影的结尾#39;没有' \ n'字符和strcpy无法处理它。
添加' \ n'在字符串的末尾解决了问题。