首页 > 解决方案 > 将 strrev() 作为参数传递给打印反向字符串的函数不起作用

问题描述

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

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

#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

这段代码有什么错误。谁能详细说明一下,谢谢。

标签: carraysstringfunctionreverse

解决方案


你打strrev了两次电话。第二次调用取消了第一次调用的效果。如果您想保持字符串反转,请不要strrev再次调用,因为两次反转相同的字符串会使它恢复原状。


推荐阅读