【C语言】三种方法实现字符串逆序函数 您所在的位置:网站首页 c语言字母代码 【C语言】三种方法实现字符串逆序函数

【C语言】三种方法实现字符串逆序函数

2024-07-11 20:21| 来源: 网络整理| 查看: 265

三种方法实现字符串逆序函数

文章目录 三种方法实现字符串逆序函数一、第一种方法(非函数)二、第二种方法(函数非递归)1.函数的方法2.函数+数组的方法 三、第三种方法(函数递归)四、面试题:对一个数组进行两次逆序打印1.代码实现2.图解面试题 总结

题目如下(示例):

写一段代码实现字符串的逆序打印 例如: 输入:abcdef 输出:fedcba 一、第一种方法(非函数)

代码如下(示例):

//对一个字符串进行逆序 int main() { char arr[1000] = { 0 }; gets(arr); int len = strlen(arr); char* left = arr; char* right = arr + len - 1; while (left int len = strlen(str); char* left = str; char* right = str + len - 1; while (left char arr[] = "abcdef"; severse_string(arr); printf("%s\n", arr); return 0; }

在这里插入图片描述 函数和main函数原理一样!这里不做过多的介绍!

2.函数+数组的方法

代码如下(示例):

//用数组函数的方法(非递归)实现字符串的逆序打印 void severse_string(char arr[]) { int len = strlen(arr); int left = 0; int right = len - 1; while (left char arr[] = "abcdef"; severse_string(arr); printf("%s\n", arr); return 0; }

在这里插入图片描述

三、第三种方法(函数递归)

代码如下(示例):

//用递归的(函数)的方法实现对字符串的逆序打印 void reverse_string(char* str) { int len = strlen(str); char tmp = *str; *str = *(str + len - 1); *(str + len - 1) = '\0'; if ((strlen(str + 1)) >= 2) { reverse_string(str + 1); } *(str + len - 1) = tmp; } int main() { char arr[] = "abcdef"; reverse_string(arr); printf("%s\n", arr); return 0; }

注意:这里的 tmp 和 len 的值可以通过调试来观察变化!如下图! 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述在这里插入图片描述这里是函数在一步一步调用,接下来是递归返回的阶段~ 第一次返回: 在这里插入图片描述 第二次返回: 在这里插入图片描述 第三次返回: 在这里插入图片描述此时已经对数组全部进行逆序打印!

四、面试题:对一个数组进行两次逆序打印

题目如下(示例):

在这里插入图片描述

1.代码实现

代码如下(示例):

void reverse_string(char* l, char* r) { while (l char arr[100] = { 0 }; //输入数组 gets(arr); //计算数组的大小 int len = strlen(arr); char* left = arr; char* right = left + len - 1; reverse_string(left, right); //对单词进行逆序 char* start = arr; char* cur = arr; while (*cur!='\0') { while (*cur != ' ' && *cur!='\0') { cur++; } reverse_string(start, cur - 1); start = cur + 1; if (*cur != '\0') { cur++;//cui原来是空格 } } printf("%s\n", arr); return 0; }

在这里插入图片描述

2.图解面试题

第一步:整体逆序字符串! 在这里插入图片描述

循环:第二步:对单个单词进行逆序!!! 1.将第一个字符串逆序 在这里插入图片描述 2.将第二个字符串逆序 在这里插入图片描述

总结

以上就是今天要讲的内容,本文介绍了字符串逆序函数的实现原理和相关的面试题。 如果我的博客对你有所帮助记得三连支持一下,感谢大家的支持! 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有