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 ...
- 简单的自绘CListBox,重载虚MeasureItem和DrawItem这两个虚函数
[cpp] view plain copy //例如CNewListBox继承自CListBox,重载虚MeasureItem和DrawItem这两个虚函数,代码如下: void CNewListBo ...
- VIM树状文件列表NERDTree
下载和配置 NERDTree插件的官方地址如下,可以从这里获取最新的版本 https://github.com/scrooloose/nerdtree 下载zip安装包 或者使用下面官网源文件安装方法 ...
- 海明距离hamming distance
仔细阅读ORB的代码,发现有很多细节不是很明白,其中就有用暴力方式测试Keypoints的距离,用的是HammingLUT,上网查了才知道,hamming距离是相差位数.这样就好理解了. 我理解的Ha ...
- UML与数据流图
Ref: <数据库设计理论及应用(3)——需求分析及数据>http://wenku.baidu.com/link?url=hbhJFytMKT8A ...
- sql 随笔 2015-06-30
清除多余字符 --清除多余字符 --' --char(9) 水平制表符 --char(10)换行键 --char(13)回车键 REPLACE( REPLACE( REPLACE(REPLACE([P ...
- C#版二维码生成器
前言 本文所使用的二维码生成代码是谷歌开源的条形码图像处理库完成的,c#版的代码可去 这里 -- 下载压缩包. 截止目前为止最新版本为2.2,提供以下编码格式的支持: UPC-A and UPC ...
- linux 命令学习大全
转载 http://blog.csdn.net/xiaoguaihai/article/details/8705992/
- NDK(17)让ndk支持完整C++,exception,rtti,
C++ Support The Android platform provides a very minimal C++ runtime support library (/system/lib/li ...
- Codeforces 4538 (状态压缩dp)Little Pony and Harmony Chest
Little Pony and Harmony Chest 经典状态压缩dp #include <cstdio> #include <cstring> #include < ...