我制作了一个将单词分成单个字母的小程序(如Hello:H-e-l-l-o)。
int i;
char str[50],str2[2];
printf("insert something \n");
scanf("%s", str);
for (i=0; i<strlen(str); i++)
{
strcpy (str2,str[i]);
//printf("%c", str[i]);
}
它工作正常,但现在我希望每个单词都在char
我尝试使用strcpy (str2,str[i]);
但不起作用:(
答案 0 :(得分:0)
在你的情况下,
strcpy (str2,str[i]);
目标str2
不足以容纳整个源字符串。因此,通过耗尽债券,您的代码会调用undefined behavior。
供参考,C11
标准,章节§7.24.1
[...]如果在对象末尾之外访问数组,则行为未定义。
您可以使用数组索引来提取并打印数组中的每个元素。