【C语言】三种方法实现字符串逆序函数 | 您所在的位置:网站首页 › c语言字母代码 › 【C语言】三种方法实现字符串逆序函数 |
三种方法实现字符串逆序函数
文章目录
三种方法实现字符串逆序函数一、第一种方法(非函数)二、第二种方法(函数非递归)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; }
代码如下(示例): //用数组函数的方法(非递归)实现字符串的逆序打印 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 的值可以通过调试来观察变化!如下图! 题目如下(示例): 代码如下(示例): 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; }第一步:整体逆序字符串! 循环:第二步:对单个单词进行逆序!!! 1.将第一个字符串逆序 以上就是今天要讲的内容,本文介绍了字符串逆序函数的实现原理和相关的面试题。 如果我的博客对你有所帮助记得三连支持一下,感谢大家的支持! |
CopyRight 2018-2019 实验室设备网 版权所有 |