2013-07-30 81 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