-1

我有这个功能,可以取一个句子并反转每个单词。我必须就地修改值,返回值应该为 Null。我无法修改主要内容:

int main()
{
    char *string= "hello";
    reverser(string);
    printf("%s\n", string);
}

在我的reverser功能中,我使用strtok需要non-const char*

char* reverser(char *sentence) {
    char *copy = strdup(sentence);
    char *string;
    int i, j;

    for(j = 0; (string = strtok(j ? NULL : copy, " ")) != NULL; j++)
        for(i = strlen(string) - 1; i >= 0; --i, j++)
            sentence[j] = string[i];
    return NULL;
}

即使使用 strdup 它也不起作用,我不知道为什么......有人有什么建议让它起作用吗?谢谢你

4

1 回答 1

0

替换char *string= "hello";char string[] = "hello";

否则string将无法修改,并且反向器功能将无法工作。(假设它总是返回 NULL)

于 2016-11-07T22:17:32.140 回答