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的数据转换与自由转换,字符串中的字符永久保存除了可以 ... 
随机推荐
- Protege A DOT error has occurred错误
			问题参生的原因:graphviz没有安装或者,没有配置好 解决方法: 1.下载graphviz,这里是百度软件下载的,在官网下载需要注册账户,麻烦 2.安装graphviz,找到下面的路径. 3.设置 ... 
- 如何在服务(Service)程序中显示对话框
			原文:http://www.vckbase.com/index.php/wv/94 服务程序(Service)一般是不能和用户进行交互的,所以他一般是不能显示窗口的.要和用户进行交互(如显示窗口),我 ... 
- mysql级联删除更新
			首先,目前在产品环境可用的MySQL版本(指4.0.x和4.1.x)中,只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引擎. 下面,我们先创建以下测试用数据库表: CREA ... 
- Android使用Fragment程序崩溃
			调用Fragment的Activity要继承并实现Fragment.OnFragmentInteractionListener 
- 22.allegro中PCB打印设置[原创]
			1. -- 2. 3. 4. ---- 
- MongoDB sharding cluster Step by Step
			本篇讲述MongoDB的 Sharding Cluster 的详细步骤,按着做理论上不会有什么错误. 关于说着里边的参数.变量.和设置,没有用到很多,只用到了关键的一些,其他的可以参考MongoDB的 ... 
- MyBatis学习总结3-优化MyBatis配置文件
			连接数据库配置优化 可以将数据库连接配置信息卸载conf.xml中,但是为了优化连接,专门写一个properties用于存数据库连接信息,然后在conf.xml中进行引用,里面包括数据库驱动,地址,用 ... 
- 面试题_89_to_92_单元测试 JUnit 面试题
			89)如何测试静态方法?(答案)可以使用 PowerMock 库来测试静态方法. 90)怎么利用 JUnit 来测试一个方法的异常?(答案) 91)你使用过哪个单元测试库来测试你的 Java 程序?( ... 
- Codeforces Round #207 (Div. 1)B(数学)
			数学so奇妙.. 这题肯定会有一个循环节 就是最小公倍数 对于公倍数内的相同的数的判断 就要借助最大公约数了 想想可以想明白 #include <iostream> #include< ... 
- 一台电脑同时运行多个tomcat配置方法
			当第一个tomcat启动后,后面tomcat的server.xml中的端口不管怎么改,仍然会报端口冲突.后来在dos下运行才发现所有的tomcat都会去找CATALINA_HOME和CATALINA_ ... 
