C语言/关于字符串逆序存储
关于字符串逆序存储问题,本文主要介绍了两种方法:1.递归 2.非递归
递归:
- 先利用my_strlen()函数求出所求字符串长度,字符串长度保存在变量len中(不含字符串'\0')(也可以直接使用库函数strlen(),使用时应注意,要包含头文件 #include<string.h> )
- 编写逆序函数 nixu(char* arr,int len,int i)
- 创建字符变量tmp,从下标i=0开始,直到i=len/2-1,将字符arr[i]存储到每次调用nixu()函数开辟的存储空间tmp上;同时从下标len-1-i(即字符串除'\0'以外的最后一个字符串)开始,将每个字符arr[len-1-i]存储到对应的字符arr[i]中。
- 直到i=len/2-1时,每个nixu()函数中的tmp将赋值给该函数中的arr[len-1-i]。
- 当程序跳出所有的nixu()函数时,arr[]数组中存储的字符串即为最开始的字符串的逆序。
源代码:
#include<stdio.h>int my_strlen(char* arr)
{int len = 0;while (*arr != '\0'){len++;arr++;}return len;
}void nixu(char* arr, int len,int i)
{char tmp;tmp = arr[i];arr[i] = arr[len - 1 - i];if (i < len / 2){nixu(arr, len, i + 1);}arr[len - 1 - i] = tmp;
}int main()
{char arr[] = "sagfhjasggjawjka";int len = my_strlen(arr);int i = 0;nixu(arr, len, i);printf("%s\n", arr);return 0;
}
运行结果:
非递归:
- 先利用strlen()函数求出所求字符串长度,字符串长度保存在变量len中(不含字符串'\0')
- 编写非递归逆序函数 nixu(char* arr,int len)
- 从下标i=0开始,直到i=len/2-1,利用字符变量tmp,交换arr[i]和arr[len-1-i];
- 直到i=len/2时,字符串arr已完成逆序排序。
源代码:
#include<stdio.h>
#include<string.h>void nixu(char*, int);void nixu(char* arr, int len)
{char tmp;int i = 0;while (i < len / 2){tmp = arr[i];arr[i] = arr[len - 1 - i];arr[len - 1 - i] = tmp;i++;}}int main()
{char arr[] = "sagfhjasggjawjka";int len = strlen(arr);nixu(arr, len);printf("%s\n", arr);return 0;
}
运行结果:
这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位
C语言/关于字符串逆序存储相关推荐
- c语言对字符串逆序,【C语言】 字符串逆序
[C语言] 字符串逆序 字符串逆序有多种办法,下面我们分方法而论: // 非递归实现字符串反转: char *reverse(char *str) { if( !str ) { return NULL ...
- 使用C语言实现字符串逆序操作
这篇文章主要介绍了使用C语言实现字符串逆序操作案例,本文包含使用C语言的两种方法去实现,递归和非递归,以下就是详细内容,需要的朋友可以参考下 编写一个函数 reverse_string(char * ...
- C语言实现字符串逆序、倒置字符串(字符串逆序问题的升级)
一.字符串逆序 问题描述: 输入一个字符串str,将其内容颠倒过来,并输出. 数据范围0<len(str)<10000 输入描述: 输入一个字符串,可以有空格 输出描述: 输出逆序的字符串 ...
- c语言指针字符串逆序存放,C语言指针实现字符串的反转
题目要求: 编写程序:从键盘任意输入一个字符串,输出该字符串. 然后,将该字符串逆序存放后再输出,要求用字符指针完成. 代码: //解法一 #include #include int main() { ...
- c语言实现单链表逆序算法,C语言解字符串逆序和单向链表逆序问题的代码示例...
字符串逆序上次面试碰到一个单向链表逆序的题目,幸好对字符串逆序比较熟悉,类比做出来了.字符串逆序比较简单,直接上代码: void stringReverse(char* p1,char* p2) { ...
- C语言实现——字符串逆序
目录 前言 如何实现 代码实现 1.设立一个数组存放输入的字符串 2.将输入的字符串整体逆序 2.1 计算字符串长度 2.2 使用函数来实现倒置 2.3 实现函数reverse 3.将其中每个单词再进 ...
- c++语言将字符串逆序输出,C++实现字符串删除字符后逆序输出
本文实例为大家分享了C++实现字符串删除字符后逆序输出的具体代码,供大家参考,具体内容如下 输入若干个字符串,和一个英文字符ch. 要求删除每个字符串中的字符ch(区分大小写),得到新的字符串,然后将 ...
- 【c语言】字符串逆序
输入一个字符串,长度在100以内,按相反次序输出其中的所有字符. 样例输入 tsinghua 样例输出 auhgnist #include <stdio.h> #include <s ...
- 2019递归实现字符串的逆序存储(C++)
描述 写一个递归算法来实现字符串的逆序存储,要求空间复杂度为O(1). 输入 多组数据,每组数据有一行,为要求逆序存储的字符串.当输入字符串为"0"时,输入结束. 输出 对于每组数 ...
最新文章
- 转载:CSS hack技巧大全
- 深度学习问题解决:Check failed: stream-parent()-GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogra
- easyui-window 关闭事件,只要关闭窗口就会触发
- java交换integer_Java比较和交换语义和性能
- 阅读笔记 1 火球 UML大战需求分析
- php 判断当前栏目高亮,Phpcms V9采用if语句判断当前栏目高亮、判断分类信息是否过期...
- 一级计算机考试修改信息书面申请表,医院信息科修改数据库申请单.doc
- ARGMAX(以及ARGMIN)的意思
- hive case when语法_SQL中CASE表达式的妙用
- OpenShift 4 - Knative教程 (3) 了解Knative Serving的核心对象
- 助您写出优雅的Java代码七点建议
- 〖Python APP 自动化测试实战篇④〗- 通过 appium 驱动夜神模拟器完成第一个自动化脚本 - 查看通讯录
- system libzip must be upgraded to version >= 0.11
- mac原生壁纸,拿走不谢!
- Making Startup Magic
- android 手机存储大小设置,如何让手机内存变大?内存不足解决方法【详解】
- 图片怎么转换成pdf格式?这几个方法帮你一键转换
- 10行代码实现微信群消息同步(wxpy)
- mi4a android tv,小米电视4A精简系统教程
- 科罗拉多矿业大学计算机科学专业,科罗拉多矿业大学专业设置情况_有哪些专业...
热门文章
- 161206 ANFIS 自适应模糊神经网络
- android mac 照片恢复,删掉的照片怎么恢复?找回攻略用起来!
- SIGSEGV (0xb) at pc=0x0000000400000000, pid=14750, tid=140204925077248 问题排查
- 常见的嵌入式端流媒体服务器开源项目!
- erp系统用到哪些java技术,看完这篇彻底明白了
- 现代信号处理——高阶统计分析(非高斯信号与线性系统)
- ASP.NET与SEO - 认清你手中的HTML标签
- debian 图形界面安装及无线网卡驱动 Broadcom BCMXX系列
- 最有效的方法来增加在Map中的值
- 深度突变扫描的步骤:可用于文库构建、功能筛选和高通量测序