在C中的strtok并传递参数

Pab*_*ero 0 c arrays pointers strtok

我有一个函数,其目的是接收一个由空格分隔的数字数组,一次一个数字,将它们分配给结构的变量,如下所示:

typedef struct coo {
    int x;
    int y;
} Coord;

typedef struct exer {
    Coord coords[1000];
} exercise;


int coordinates(char *sent){
    char * pal;
    int k=0;
    pal = strtok (sent," ");
    while (pal != NULL)
    {
        exercise.coords[k].x=*pal;
        pal = strtok (NULL," ");
        exercise.coords[k].y=*pal;
        pal = strtok (NULL," ");
        k++;
    }
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

问题是稍后打印的坐标与发送中给出的坐标不同.

如果我输入坐标1 2 3 4 5 6,它将给出坐标49 50 51 52 53.

先感谢您.

Som*_*ude 6

这是因为你获得了第一个角色的价值.值49你得到的是对字符的ASCII值'1'.

您必须将字符串转换为数字,例如strtol.