Передача strrev () в качестве аргумента функции для печати обратной строки не работает - PullRequest
0 голосов
/ 22 марта 2020

Задача состоит в том, чтобы передать обратную строку заданной строки и напечатать ее в функции.

Когда я пытался это сделать, код печатает реальную строку вместо обратной строки.

#include<stdio.h>
#include<string.h>
void function(char*);
int main() 
{
        char x[]="Hello";
        printf("\nPassing: %s\n",x);
        function(x);
        printf("\nPassing: %s\n",strrev(x));
        function(strrev(x));

}
void function(char mainstr[])
{
    printf(" >Recieved mainstr=%s",mainstr);
}

Вывод вышеуказанного кода:

Passing: Hello
 >Recieved mainstr=Hello
Passing: olleH
 >Recieved mainstr=Hello

В чем ошибка в этом коде. Кто-нибудь может уточнить, пожалуйста?

1 Ответ

0 голосов
/ 22 марта 2020

Вы звоните strrev дважды. Второй вызов отменяет эффекты первого вызова. Если вы хотите, чтобы строка была перевернутой, не вызывайте strrev снова, так как при перестановке одной и той же строки дважды возвращает ее в прежнее состояние.

...