【发布时间】:2016-07-30 09:45:56
【问题描述】:
我正在尝试拆分从文件中读入的一行,并使用strcpy() 将我找到的数据复制到一个字符数组中错误,尽管我也尝试过使用确定的缓冲区大小与strncpy() 以及strncat() 相同的结果。在我的 sn-p 中,我尝试简单地在令牌末尾添加一个空终止字符。
这是我失败的代码的 sn-p:
token = strtok(line, s);
strcpy(update, token);
token = strtok(NULL, s);
token = token + '\0';
strcpy(firstName, token);
token = strtok(NULL, s);
此函数中的第一个strcpy() 调用尚未失败。我第二次调用strcpy()每次尝试运行它都会失败。
我的其余代码可以在here找到
【问题讨论】:
-
您希望通过声明
token = token + '\0';实现什么目标?update和firstName是如何定义的? -
你需要显示
update是什么。 -
不知道更新和名字是如何定义的和/或他们指出的这个问题无法回答。
-
我链接了完整的代码,因为我认为在此页面上以文本形式发布会太长。但是 update 和 firstName 是定义在结构内部的字符数组。
-
至于
token = token + '\0';语句,我天真地希望我可以在token的末尾添加空终止字符,这样strcpy()就可以在不读取缓冲区的情况下停止。跨度>
标签: c segmentation-fault strcpy strcat