【问题标题】:Passing strrev() as an argument to a function to print reverse string is not working将 strrev() 作为参数传递给打印反向字符串的函数不起作用
【发布时间】:2020-03-22 06:35:07
【问题描述】:

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

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

#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

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

【问题讨论】:

  • strrev() 将字符串反转到位。因此,您在第二个函数中收到"olleH" 的反向字符串是正常的,即"Hello"

标签: c arrays string function reverse


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 2017-04-25
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多