复制句子C的单个单词

时间:2016-01-11 18:35:43

标签: c

我制作了一个将单词分成单个字母的小程序(如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]);但不起作用:(

1 个答案:

答案 0 :(得分:0)

在你的情况下,

 strcpy (str2,str[i]);

目标str2不足以容纳整个源字符串。因此,通过耗尽债券,您的代码会调用undefined behavior

供参考,C11标准,章节§7.24.1

  

[...]如果在对象末尾之外访问数组,则行为未定义。

您可以使用数组索引来提取并打印数组中的每个元素。