C 用 space 分隔文本

C separating text with space

我写了一个代码,应该添加两个由 space 分隔的罗马数字。有一些问题,可能是这部分(第 93 行)

pch = strtok (str," ");

当我将其他标志放在括号中时,它可以正常工作。我不知道为什么。如果有人能提供帮助,我将不胜感激。 (我对C中char的用法了解不多)

转换罗马数字的部分没有正确粘贴在这里,但我认为我的错误在 main 函数的某个地方。

int main() {

    char str[26];
    scanf("%s", &str);

    char * pch;
    int result=0;
    pch = strtok (str," ");
    while (pch != NULL)
    {
        result+=roman(pch, sizeof pch / sizeof pch[0]);
        pch = strtok (NULL, " ");
    }
    printf("%d",result);
    return 0;

}

scanf() 只读到第一个 space。看看这个 link:https://www.geeksforgeeks.org/taking-string-input-space-c-3-different-methods/ 最流行的方法是 fgets()