-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 に答える