如何将字符串标记输入二维数组?

时间:2019-01-23 22:32:00

标签: c arrays string

尝试获取带有定界符“ |”的输入列表:

  

公众|简|问|女士| 600 |枫树街|您的城镇|爱荷华州| 12345

然后想将它们输入到我可以操纵的2d数组(customerData)中。

我意识到我缺少int main()和用于读取文件/输入的代码。仅包括相关代码。我可以得到输入,将它输入到customerData中,以摆脱我一直在努力的地方。

#define INPUT_LENGTH 128
#define FIELD_LENGTH 30
#define NUM_FIELDS   9


char input[INPUT_LENGTH];                    
char customerData[NUM_FIELDS][FIELD_LENGTH];  
int  element = 0;
int customer = 0;

while ( fgets( input, INPUT_LENGTH, data ) != NULL ) {
  char* token = strtok(input, "|"); // start tokeninzing
  while (token) { // end of string last token is NULL
    strcpy(customerData[customer][element], token); 
    token = strtok(NULL, "|"); 
    element++;
  }
  customer++;  
}

for (int i = 0; i < entry; i++) {
  for (int k = 0; k < element; k++) {
    printf("%s\n", customerData[i][k]);
  }
}

我期望这样的输出:

Public
Jane
Q
Ms.
600
Maple Street
Your Town
Iowa
12345

1 个答案:

答案 0 :(得分:0)

即使是新客户/新客户,发布的代码也会继续向element加1。

建议,在声明之后:

customer++; 

插入语句:

element = 0;

还涉及:

char customerData[NUM_FIELDS][FIELD_LENGTH];

我希望数组的第一部分是客户编号,然后是NUM_FIELDS,然后是FIELD_LENGTH

此外,为清楚起见,建议将element替换为fieldNum

相关问题