C:如何将一串int转换为实际的int并将它们存储在一个数组中?

Ete*_*ner 3 c string

我有一个字符串"14 22 33 48".我需要将字符串中的每个值插入到数组中的相应位置:

int matrix[5];
Run Code Online (Sandbox Code Playgroud)

以便

matrix[0] = 14;
matrix[1] = 22;
matrix[2] = 33;
matrix[3] = 48;
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

Ign*_*ams 8

你可以使用sscanf:

sscanf(val, 
       "%d %d %d %d", 
       &matrix[0], 
       &matrix[1], 
       &matrix[2], 
       &matrix[3]
);
Run Code Online (Sandbox Code Playgroud)


Chr*_*odd 5

const char *p = input;
int i = 0, len;
while (i < sizeof(matrix)/sizeof(matrix[0]) 
   && sscanf(p, "%d%n", &matrix[i], &len) > 0) {
    p += len;
    i++;
}
Run Code Online (Sandbox Code Playgroud)

对于额外的功劳,动态重新分配矩阵使其大小需要...