2016-07-14 11 views
0

現在、テキストファイルから読み込みによって割り当てられた文字配列を分割しようとしています。今すぐ区切り文字で問題が発生しているのですが、複数のことができるかどうかは分かりません。私が区切りたいものはコンマとスペースです。ここまでは私のコードです。私がこれまでに見つけた何Cで複数の区切り文字を使用して文字列を分割する

#include <stdio.h> 
FILE * fPointer; 
fPointer = fopen("file name", "r"); 
char singleLine[1500]; 
char delimit[] = 
int i = 0; 
int j = 0; 
int k = 0; 


while(!feof(fPointer)){ 
    //the i counter is for the first line in the text file which I want to skip 

    while ((fgets(singleLine, 1500, fPointer) != NULL) && !(i == 0)){ 
     //delimit in this loop 
     puts(singleLine); 

    } 
    i++; 
} 

fclose(fPointer); 

return 0; 
} 

はタブと、そのような例の省略形を持っているテキストの文字列を使用して区切るための方法です

char Delimit[] = " /n/t/f/s"; 

私はdelimiterパラメータ

の下ではstrtok()メソッドにこの文字列を使用しますが、これは文句を言わない私が区切り文字としてコンマを持ってみましょう。

そして、この点全体がわかっていますので、区切り文字列を変数に代入することができます。

サンプル入力:P1,2、3、2

任意のヘルプまたは参照は理解のおかげです。

+0

'strtok':にあなたのサンプル入力P1,2, 3 , 2を変えるだろう

char Delimit[] = " ,\n\t"; // <snip> char * token = strtok (singleLine, Delimit); while (token != NULL) { // use the token here printf ("%s\n",token); // get the next token from singleLine token = strtok (NULL, Delimit); } 

これを使用してみてください?テキストファイルのサンプル行を含めることはできますか?あなたは「これまでに見つけた」方法は何ですか? – thelaws

+0

@thelaws明確にする必要がある場合は、私にもっと情報を追加しました。 – Thorx99

+1

'、'を 'strtok'の区切り文字として使うことができます。ここにその例があります:http://www.cplusplus.com/reference/cstring/strtok/ – thelaws

答えて

1

strtokメソッドでは、デリミタとして,を使用できます。

改行とタブには\n\tを使用することを意味していたと思います(私は/f/sが表すことを意味しません)。

P1 
2 
3 
2 
+0

'strtok()'アプローチの問題は、 'P1、2,3,2'が同じ出力を生成し、' strtok'を使って空の値を解析できないという、隣接する区切り文字のシーケンスの誤った解釈である可能性があります。 – chqrlie

関連する問題