C语言反转字符串
也是面腾讯的一道编程题=,=
这题比较简单
代码如下:
- #include <stdio.h>
- #include <string.h>
- // 非递归实现字符串反转
- char *reverse_v1(char *str)
- {
- if( !str )
- {
- return NULL;
- }
- int len = strlen(str);
- char temp;
- for( int i = ; i < len / ; i++ )
- {
- // 交换前后两个相应位置的字符
- temp = *(str + i);
- *(str + i) = *(str + len - - i);
- *(str + len - - i) = temp;
- }
- return str;
- }
- // 非递归实现字符串反转
- char *reverse_v2(char *str) {
- if( !str )
- return NULL;
- int len = strlen(str);
- int i, j;
- char temp;
- for( i = ,j= len-; i < j; i++, j--) {
- // 交换前后两个相应位置的字符
- temp=str[i];
- str[i]=str[j];
- str[j]=temp;
- }
- return str;
- }
- // 递归实现字符串反转
- void reverse(char *str, int n)
- {
- if( !str )
- return ;
- if ( == n || == n) {
- return;
- } else {
- char tmp = str[];
- str[] = str[n-];
- str[n-] = tmp;
- reverse(str+, n-);
- }
- }
- int main() {
- // 不能用 char *str = "help";这种,因为这种情况下的"help"是个字符常量,"help"存放于常量区
- // 参考&拓展:http://www.cnblogs.com/lingshaohu/p/3956239.html
- char str[] = "help";
- //char *dst = reverse_v1(str);
- //char *dst = reverse_v2(str);
- //printf("%s\n", dst);
- reverse(str, strlen(str));
- printf("%s\n", str);
- return ;
- }
ref:http://blog.csdn.net/ameyume/article/details/5599139#
C语言反转字符串的更多相关文章
- golang——reverse反转字符串
reverse反转,是个比较基础算法.要实现这个方法,从常理考虑可以申请一个新空间,然后将字符串的从尾到头依次填充该空间,最后新空间的内容就是反转后的结果了,这个方式的算法复杂度是O(n),并且还需要 ...
- 《c程序设计语言》读书笔记--反转字符串
#include "stdio.h" #define Num 100 void reverse(char words[]) { int i, j, c, n=0; while(wo ...
- Leecode刷题之旅-C语言/python-344反转字符串
/* * @lc app=leetcode.cn id=344 lang=c * * [344] 反转字符串 * * https://leetcode-cn.com/problems/reverse- ...
- Python 中的反转字符串:reversed()、切片等
摘要:以相反的顺序反转和处理字符串可能是编程中的一项常见任务.Python 提供了一组工具和技术,可以帮助您快速有效地执行字符串反转. 本文分享自华为云社区<Python 中的反转字符串:rev ...
- R语言拆分字符串
R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...
- C# 反转字符串方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 反转字符 ...
- C# 反转字符串
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 实现字符 ...
- C语言之字符串处理函数
C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...
- Swift3.0语言教程字符串与URL的数据转换与自由转换
Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...
随机推荐
- Project Euler 75:Singular integer right triangles
题目链接 原题: It turns out that 12 cm is the smallest length of wire that can be bent to form an integer ...
- TCL语言笔记:TCL中的列表操作
一.介绍 列表则是具有特殊解释的字符串.Tcl 中的列表操作和其它 Tcl 命令一样具有相同的结构.列表可应用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命 ...
- QT进度条QProgressBar的练习(定制QProgressBar,单独成为一个控件)
progressbar.h #ifndef PROGRESSBAR_H #define PROGRESSBAR_H #include <QProgressBar> class QStrin ...
- IDEA15 File工具栏中没有 Import Project
使用IDEA准备导入项目时发现没有Import Project选项... 解决办法: Settings > Appearance & Bechavior > Menus and T ...
- 使用phantomjs对页面进行截图
本文章参考了使用phantomjs操作DOM并对页面进行截图需要注意的几个问题 及 phantomjs使用说明 这两篇文章,初次接触phantomjs的童鞋可以去看下这两篇原文 在学习中可以看下 ph ...
- Android Intent个人介绍
在Android中要打开一个新的Activity, 不用说,肯定会用到Intent,Intent作为Android的四大组件之一,个人理解,Intent的作用就是用来在(其它三个不同组件)间进行通讯, ...
- laravel速记(笔记)
命令行: php artisan controller:make UserController This will generate the controller at /app/controller ...
- WebBrowser自动点击链接 广告自动点击 Ads Auto Click
点击付费广告, 是目前比较流行的一种网络营销模式, 但是,如果你单纯的靠手工一个一个去点, 总觉得不划算 , 能不能实现自动的去点击呢? 答案是肯定的 .NET 里面的 WebBrowser, 可以 ...
- linux/unix网络编程之 select
转自http://www.cnblogs.com/zhuwbox/p/4221934.html linux 下的 select 知识点 unp 的第六章已经描述的很清楚,我们这里简单的说下 selec ...
- poj 1195 Mobile phones(二维树状数组)
树状数组支持两种操作: Add(x, d)操作: 让a[x]增加d. Query(L,R): 计算 a[L]+a[L+1]……a[R]. 当要频繁的对数组元素进行修改,同时又要频繁的查询数组内任一 ...