将strrev()作为参数传递给打印反向字符串的函数不起作用

问题描述 投票:0回答:1

任务是传递给定字符串的反向字符串并将其打印在函数中。

[当我尝试这样做时,代码正在打印实际字符串而不是反向字符串。

#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

此代码有什么错误。有人可以详细说说吗,谢谢。

c arrays string function reverse
1个回答
0
投票

您两次呼叫strrev。第二个呼叫撤消第一个呼叫的影响。如果要保持字符串反转,请不要再次调用strrev,因为两次反转相同的字符串会使它恢复原来的状态。

© www.soinside.com 2019 - 2024. All rights reserved.