gpt4 book ai didi

C语言将char数组转换成int二维数组

转载 作者:太空宇宙 更新时间:2023-11-04 03:20:23 25 4
gpt4 key购买 nike

我有一个由索引和值组成的不定数量的“对”的字符数组,用分号分隔。每个索引与其值之间用逗号分隔。

示例:

char srt[50] = "1,3; 2,4; 0,-2; 3,11";   

("index1, value1; index2, value2; ...")

我想将 char 数组转换为 2d int 数组,如下所示:

int num[4][2] = {{1,3}, {2,4}, {0,-2}, {3,11}};

如何?

最佳答案

希望不要因为做作业而被否决,但我只是抽出一些时间来编写一些代码。方法是首先计算(可能的)对数(即分号数+1)以保留适当的数组。然后,使用带有 strtok 的循环来分隔对,并使用 sscanf(str, "%d,%d",..) 来读取值。请注意,由于解析对失败,实际对数可能与最大对数不同:

int main()
{
char srt[50] = "1,3; 2,4; 0,-2; 3,11";

char* p=srt;
size_t pairsCount = 1;
while (*p) {
if (*p++ == ';')
pairsCount++;
}

int pairs[pairsCount][2];

p = strtok(srt, ";");
pairsCount = 0;
while (p) {
int key = 0, value = 0;
if (sscanf(p, "%d,%d", &key, &value) == 2) {
pairs[pairsCount][0] = key;
pairs[pairsCount][1] = value;
pairsCount++;
}
p = strtok(NULL, ";");
}

for (int i=0; i<pairsCount; i++) {
printf("%d,%d\n", pairs[i][0], pairs[i][1]);
}

return 0;
}

关于C语言将char数组转换成int二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46898658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com