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

标签 c arrays string

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

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

然后想将它们输入到我可以操作的二维数组(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,即使它是新线路/新客户。

在声明之后建议:

customer++; 

插入语句:

element = 0;

还涉及:

char customerData[NUM_FIELDS][FIELD_LENGTH];

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

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

关于c - 如何将字符串标记输入二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54336716/

相关文章:

Javascript "shift"与 "splice"- 这些语句是否相等?

我们可以使用 GCC 来处理 C 项目的翻译阶段 1..5

c - ONC RPC 从服务器发送结构中的字符

c - a[ ][3] 此数组中已创建了多少行?

javascript - 如何使用Nightmare.js JavaScript转到URL数组

java - 使用表达式语言检索带引号的字符串

c - 26 位无符号整数大数组

java - 在循环、Java 和 Android 中使用方法

python - 从文本文件中提取数据时出现问题

javascript - 如何在 jquery 中初始化字符串中的类或标题