2013-07-30 50 views
0

我有一组文件中的每行线的字符串必须由","分隔几个字符串。分割基于定界符用C

如何可以分割字符串基于所述分隔符和存储在多维数组其中第一个索引是在输入文件中的行号的结果,第二个是列号

+0

C++溶液:?如何分割由分隔符的字符串到一个数组(http://stackoverflow.com/questions/89 0164/how-can-i-split-a-string-by-a-delimiter-into-an-an-array) –

+0

这种声音就是所谓的CSV文件?你可以在C中查找CSV解析代码。我确信有很多这样的例子。 –

回答

3

使用strtok() string.h中头文件能够以C使用

strtok(char * array, ","); 


char * array[size of columns][size of rows] 
pch = strtok (str,","); 
int i, j; 
while (pch != NULL) 
{ 
    array[i++][j] = pch; 
    if(i == size of columns - 1){ 
    i = 0; j++; 
    } 
    pch = strtok (NULL, ","); 

    if(j == size of rows -1){ 
    break; 
    } 
} 
+3

应该完成你的答案,OP需要一个字符串数组,另加重要提示:'的strtok()函数修改原始输入字符串(第一个参数)用“\ 0” symbols.'所以第一个参数替换分隔符不能是字符串文字。 –

+0

有人能给我提供某种伪的,我是新来的指针,并与多维数组的事情 –

1

你能做什么(因为路C字符串工作)是检查字符,直到你遇到一个“”再你替换\0(NULL字符),其性格和跟踪你开始在检查(字符串的起点或最后一个NULL字符之后的字符的最后一个位置的。这会给你的每个分隔件可用C-字符串。

+0

感到困惑需要在整个字符串两次传球,而不是一个。 – Magn3s1um

+0

@ Magn3s1um如果您在找到它们时存储指针,请不要使用它。 –

+0

那么你想要遍历每个角色呢? – Magn3s1um