尝试获取带有分隔符“|”的输入列表:
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/