【发布时间】:2018-07-07 11:11:23
【问题描述】:
使用 strsep 拆分包含一堆无用垃圾的 CSV ("," Delim)。其中一个条目的两边都有引号(即 Florida,"Bob",1999),我想在将它们保存到我的数组之前将它们拉出来。
如何删除名称中的引号?谢谢!
for (int i = 0; i < 19; i++)
{
token = strsep(©, ","); //Split token
if (i == 3) {one_spot->location = token;}
if (i == 17) {one_spot->name = token;}//the Name is in quotes in CSV
if (i == 18) {one_spot->year = atoi(token);}
}
all_spots[j] = one_spot; //Add to array.
【问题讨论】:
-
你有什么问题?
-
首先,您真的不应该尝试制作自己的 CSV 解析器。虽然它可能看起来简单而微不足道,但有很多角落和特殊情况并非易事。例如,双引号的存在表明它可以是包含空格和其他特殊字符的任意字符串,包括逗号。
-
至于您的问题,请记住,C 字符串基本上只是一个带有特殊终止符的数组。现在如果你把这个终止符放在字符串的中间会发生什么?如果你得到一个指向字符串中第二个字符的指针会发生什么?想一想,做一些实验。