任务是传递给定字符串的反向字符串并将其打印在函数中。
[当我尝试这样做时,代码正在打印实际字符串而不是反向字符串。
#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
。第二个呼叫撤消第一个呼叫的影响。如果要保持字符串反转,请不要再次调用strrev
,因为两次反转相同的字符串会使它恢复原来的状态。