c - 将 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
这段代码有什么错误。谁能详细说明一下,谢谢。
解决方案
你打strrev
了两次电话。第二次调用取消了第一次调用的效果。如果您想保持字符串反转,请不要strrev
再次调用,因为两次反转相同的字符串会使它恢复原状。
推荐阅读
- python-3.x - 如何从范围内生成列表中的随机数
- android-layout - 如何制作带有矩形图像的 ImageButton 圆形?
- c++ - 为什么win api线程执行函数,而标准线程不执行?
- java - 如果它真的需要接口a或者我可以在这个类中实现,请创建接口a
- c++ - 如何在 Visual Studio Code 的 Code Runner(Linux 中)中使用 C++ 链接到 GMP?
- javascript - 在存在 PDF iframe 的情况下选择文本后,文本输入开始向后键入
- python - 如何从 sklearn 转换(Imputer)中保留 DataFrame 中的数据类型
- reactjs - html2canvas 没有正确显示表单元素
- compression - 为什么 tar 归档占用 1MB?它不应该只占用1KB吗?
- javascript - Javascript - 如何从 MQTT 将变量值插入数据库