古娜拉黑暗之神(编程实现字符串的反转)
2018-01-26 13:29
405 查看
方法一:效率低
/[b]***************************************************************[/b]
File Name: reverse.c
Author: 浮生流年
Function List: main() 主函数
Created Time: 2018年01月26日 星期五 10时29分34秒
[b]**************************************************************[/b]/
方法二:优化版
/[b]***************************************************************[/b]
File Name: reverse2.c
Author: 浮生流年
Function List: main() 主函数
Created Time: 2018年01月26日 星期五 12时53分49秒
[b]**************************************************************[/b]/
方法三:递归
/[b]***************************************************************[/b]
File Name: reverse3.c
Author: 浮生流年
Function List: main() 主函数
Created Time: 2018年01月26日 星期五 13时09分09秒
[b]**************************************************************[/b]/
/[b]***************************************************************[/b]
File Name: reverse.c
Author: 浮生流年
Function List: main() 主函数
Created Time: 2018年01月26日 星期五 10时29分34秒
[b]**************************************************************[/b]/
#include <stdio.h> #include <string.h> int main() { char str[100] = {0}; printf("please input :\n"); scanf("%s", str); int tmp, i, j; int len = strlen(str); for (i = 0; i < len / 2; i++) { tmp = str[i]; str[i] = str[len - 1 - i]; str[len - 1 - i] = tmp; } for (i = 0; i < len; i++) { printf("%c ", str[i]); } printf("\n"); return 0; }
方法二:优化版
/[b]***************************************************************[/b]
File Name: reverse2.c
Author: 浮生流年
Function List: main() 主函数
Created Time: 2018年01月26日 星期五 12时53分49秒
[b]**************************************************************[/b]/
#include <stdio.h> #include <string.h> int main() { char str[100] = {0}; int i; printf("please input :\n"); scanf("%s", str); char *p = str + strlen(str) - 1; char *temp = str; while (p > temp) { *p ^= *temp;//使用异或运算符,实现时间和空间的算法优化 *temp ^= *p; *p ^= *temp; p--; temp++; } for (i = 0; i < strlen(str); i++) { printf("%c ", str[i]); } printf("\n"); return 0; }
方法三:递归
/[b]***************************************************************[/b]
File Name: reverse3.c
Author: 浮生流年
Function List: main() 主函数
Created Time: 2018年01月26日 星期五 13时09分09秒
[b]**************************************************************[/b]/
#include <stdio.h> #include <string.h> char *reverse(char *str, int len) { if (len < 1) return str; char t = *str; *str = *(str + len - 1); *(str + len - 1) = t; //递归方法:每次交换首尾两个字符,中间部分则又变为和原来字符串同样的问题 return (reverse(str + 1, len -2) - 1); } int main() { char str[100] = {0}; printf("please input :\n"); scanf("%s", str); char *ptr = reverse(str, strlen(str)); printf(ptr); return 0; }
相关文章推荐
- 编程实现字符串的反转问题
- 古娜拉黑暗之神(编程实现字符串中各单词的反转)
- 不使用任何中间变量,实现字符串反转
- 编程实现字符串的替换
- 编程实现:从字符中获取连续数组序列,如字符串"a1dl2iad9j3la5kudp7u9pn4blj8ap5u3e6ml9a"中可以得到的连续数字序列为1234556.【注】:只考虑一位,因此最长的数
- 在进行C#编程时候,有的时候我们需要判断一个字符串是否是数字字符串,我们可以通过以下两种方法来实现。 【方法一】:使用 try{} catch{} 语句。 我们可以在try语句块中试图
- Java实现字符串反转的几种方法
- 模拟实现一个字符串的反转
- 小程序-----实现字符串的反转
- 要求:不申请变量和空间 反转字符串 ,用一个函数实现。 异或^交换或者加减交换的典型应用! VIA 笔试题
- 自行打造实现控制反转容器(IOC)与面向方面编程(AOP)的轻量级Framework(2)
- 递归思想,实现字符串反转
- 采用AWK编程实现随机函数(包括整数、浮点数、字符串、日期时间)
- 字符串反转简单实现
- C语言中常用的字符串操作(子串分割、替换、去前后空格、递归实现字符串反转)
- 定义一个静态成员方法,该方法实现字符串反转
- 一些常用算法[数组全排列算法,单链表反转(递归实现),字符串反转,桶排序]
- 在网上看到了一个面试题感觉很有意思 写一个函数,实现字符串反转
- 面试题:编程实现将字符串的各个单词翻转
- 【编程练习】二叉树的反转,Java和Python实现