【C语言】 字符串逆序

字符串逆序有多种办法,下面我们分方法而论:

// 非递归实现字符串反转:

char *reverse(char *str)

{

if( !str )

{

return NULL;

}

int len = strlen(str);

int i,j;

char temp;

for( i = 0,j=len-1; i

{

// 交换前后两个相应位置的字符

temp=str[i];

str[i]=str[j];

str[j]=temp;

}

return str;

}

int main()

{

char src[] = {"abcdef"};

char *pdest = reverse(src);

puts(src);

return 0;

}

//递归就是一种栈结构:

#include

#include

void reverse_string(const char * const string)

{

assert(string);

if (*string == '\0')

return;

else

reverse_string(string+1);// 先将字符压栈

putchar(*string);// 再将字符按照先进后出的顺序输出

}

int main()

{

char string[20] = {0};

scanf("%[^\n]",string);

reverse_string(string);

printf("\n");

return 0;

}

亦可:(若要求不使用其他库函数)

#include

#include

int my_strlen(const char *string)

{

assert(string);

if(*string == '\0')

{

return;

}

else

return 1+my_strlen(string+1);

}

char *reverse_string(char *string,int len)

{

assert(string);

if(!string)

{

return NULL;

}

if(len > 1)

{

char tmp = string[0];

string[0] = string[len-1];

string[len-1] = '\0';           // 最后一个字符在下次递归时不再处理

reverse_string(string + 1,len-2);//递归调用,每调用一次,要反转的字符串分别从头和末尾各减少一个

string[len-1] = tmp;

}

return string;

}

int main()

{

char string[20] = {0};

int len;

scanf("%s",string);

len = my_strlen(string);

reverse_string(string,len);

printf("%s\n",string);

return 0;

}

©著作权归作者所有:来自51CTO博客作者Vs吕小布的原创作品,谢绝转载,否则将追究法律责任

c语言对字符串逆序,【C语言】 字符串逆序相关推荐

  1. ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串

    题目描述 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串. 输入 一行字符 输出 逆序后的字符串 样例输入 123456abcdef 样例输出 fedcba654321 来源 ...

  2. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | 引入线程安全概念 )

    文章目录 一.引入线程安全概念 二.完整代码示例 一.引入线程安全概念 在上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 ) ...

  3. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 )

    文章目录 一.strncat 字符串连接函数 二.借助 递归函数操作 逆序字符串操作 三.完整代码示例 一.strncat 字符串连接函数 strncat 函数 : 将 const char *src ...

  4. 字符串逆序输出c语言,5、输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。...

    举例: #include int main() { int i, j, cnt; char ch, a[80], b[80]; ch=getchar(); for(i=0; ch!='\n'; i++ ...

  5. C语言实现字符串逆序、倒置字符串(字符串逆序问题的升级)

    一.字符串逆序 问题描述: 输入一个字符串str,将其内容颠倒过来,并输出. 数据范围0<len(str)<10000 输入描述: 输入一个字符串,可以有空格 输出描述: 输出逆序的字符串 ...

  6. 华为机考HJ13句子逆序C语言弱智解法

    华为机考HJ13句子逆序C语言弱智解法 句子逆序C语言低端解法,易于理解. 1.收数据老生常谈. 2.将句子全部逆序. 3.将单词正序. (这里有一个bug,最后一个词(原句子第一个词)总是收不到,所 ...

  7. C语言利用二叉树的操作实现根据给定的字符串生成二叉树并前序、中序、后序输出二叉树。

    C语言利用二叉树的操作实现根据给定的字符串生成二叉树并前序.中序.后序输出二叉树. Description 根据给定的字符串生成二叉树并前序.中序.后序此二叉树. Input 给定一字符串,其中#表示 ...

  8. C语言编程>第三周 ⑦ 将一个数组逆序输出。

    例题:将一个数组逆序输出. 代码如下: /*程序分析:用第一个与最后一个交换.*/ #include<stdio.h> #define N 5 int main() {int a[N]={ ...

  9. C语言将字符串s连接到t的后面,下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t..._考试资料网...

    问答题下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面. 例如,当s中的字符串为"ABCDE"时,则t中的 ...

  10. 用C语言去判断一个字符串是否为回文字符串(简单明了)

    C语言判断回文字符串呀 hello,小伙伴们.好久没写文章了,今天我们来写一下如何用C语言判断字符串是不是回文字符串呢. 大致思路:将字符串逆序赋给另一个字符串,然后比较这两个字符串是否相同.(其实也 ...

最新文章

  1. Hadoop 单机版和伪分布式版安装
  2. 小程序从浏览器返回有一个空白页_北京做一个小程序
  3. Python爬虫开发:requests库的使用--session的使用
  4. C++一学就废?试试这个项目包
  5. JS 查看标签下某元素所有信息(查看元素,查询元素,遍历元素、HTMLCollection对象、NodeList对象)
  6. shell进行mysql统计
  7. 2021年4大免费ER图工具
  8. 电力系统matlab建模视频,MATLAB/Simulink电力系统建模与仿真 第2版
  9. python中with open as f什么意思_Python中 with open(file_abs,'r') as f: 的用法以及意义
  10. Python 李查逊/Richardson加速外推法
  11. “双11”购物狂欢节,所有女生走进了谁的直播间?
  12. Python基础入门之切片
  13. Java Algorithm 简单算法
  14. 操作系统批处理阶段--单道和多道批处理系统处理优点缺点以及过程,分时实时操作系统
  15. linux unix 可视化界面,Linux/UNIX远程调用图形化界面的一种方法
  16. ubuntu16.04使用wine安装Wechat、QQ、Tim等windows软件
  17. python优点是代码库支持、灵活_Python 3.6版本实现用户群的不断增长
  18. linux fixup段和__ex_table段
  19. 缺陷检测-金属表面缺陷检测
  20. 压缩Html HtmlCompressor

热门文章

  1. basys3芯片型号xc7a35tcpg236-1
  2. java 简单数组_Java 数组分析及简单实例
  3. AttributeError: 'NoneType' object has no attribute 'append'
  4. Vijos——T 1016 北京2008的挂钟 || 洛谷—— P1213 时钟
  5. Java 9 揭秘(15. 增强的弃用注解)
  6. Symfony路由配置教程【已在腾讯课堂开课】
  7. PLC状态机编程第六篇-优化PLC程序生成
  8. webpack模块定义和使用的模式
  9. Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结...
  10. 安装SQL Server2008,要重启机器,解决办法