也是面腾讯的一道编程题=,=

  这题比较简单

代码如下:

 #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语言反转字符串的更多相关文章

  1. golang——reverse反转字符串

    reverse反转,是个比较基础算法.要实现这个方法,从常理考虑可以申请一个新空间,然后将字符串的从尾到头依次填充该空间,最后新空间的内容就是反转后的结果了,这个方式的算法复杂度是O(n),并且还需要 ...

  2. 《c程序设计语言》读书笔记--反转字符串

    #include "stdio.h" #define Num 100 void reverse(char words[]) { int i, j, c, n=0; while(wo ...

  3. Leecode刷题之旅-C语言/python-344反转字符串

    /* * @lc app=leetcode.cn id=344 lang=c * * [344] 反转字符串 * * https://leetcode-cn.com/problems/reverse- ...

  4. Python 中的反转字符串:reversed()、切片等

    摘要:以相反的顺序反转和处理字符串可能是编程中的一项常见任务.Python 提供了一组工具和技术,可以帮助您快速有效地执行字符串反转. 本文分享自华为云社区<Python 中的反转字符串:rev ...

  5. R语言拆分字符串

    R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...

  6. C# 反转字符串方法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 反转字符 ...

  7. C# 反转字符串

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 实现字符 ...

  8. C语言之字符串处理函数

    C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...

  9. Swift3.0语言教程字符串与URL的数据转换与自由转换

    Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...

随机推荐

  1. PHP设计模式——代理模式

    声明:本系列博客参考资料<大话设计模式>,作者程杰. 代理模式为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和 ...

  2. Loongnix 系统(MIPS Linux)

    电脑上的x86,手机上的ARM,在各自领域都是很成熟的CPU架构了,龙芯也参与进去竞争是很难的,就算是Intel,挤破头皮疯狂补贴自家的Atom x86还是在手机领域无法立足. 所以说,个人觉得龙芯可 ...

  3. ArcGIS 10.1 for Desktop新特性之地理标记照片

    转自:http://blog.csdn.net/esrichinacd/article/details/7730825 地理标记照片是指带有地理位置信息的照片,通常通过内置GPS的数码相机或智能手机拍 ...

  4. Python基本程序结构

    条件判断: 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断.比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现:

  5. MVC运行原理

    Global.asax Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一 ...

  6. 07-语言入门-07-A Famous Music Composer

    题目地址: http://blog.csdn.net/sevenmit/article/details/8231994  描述 Mr. B is a famous music composer. On ...

  7. Effective C++学习笔记 条款05:了解C++默默编写并调用的哪些函数

    一.如果用户没有提供构造函数.copy构造函数.copy assignment操作符和析构函数,当且仅当这些函数被需要的时候,编译器才会帮你创建出来.编译器生成的这些函数都是public且inline ...

  8. Codeforces Round #206 (Div. 1)B(记忆化)

    这题刚开始理解错题意了 以为只能往右和下走 这题挺好的 看题解看了N久啊 二维的DP 第一维表示走到第几步 可以画一个正方形 以左上角斜着划线 第i步走的点只能是第i条线上的点 而dp的第二维 就表示 ...

  9. dp,px转换

    public static int dip2px(Context context, float dpValue) {        final float scale = context.getRes ...

  10. freemarker中判断对象是否为空

    <#if xxx?exists> 或则 <#if xxx??>两个问号??最简单方便