我编写了这个小程序,将一个单词分为单个字母(例如Hello:H-e-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]);但不起作用:(

最佳答案

就你而言

 strcpy (str2,str[i]);


目标str2的长度不足以容纳整个源字符串。因此,通过用完绑定数,您的代码将调用undefined behavior

作为参考,C11标准,第§7.24.1章


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


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

关于c - 复制句子C的单个单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34728603/

10-11 21:30