写一个函数,实现翻转字符串的功能,并考虑时间复杂度、空间复杂度,使其尽可能最小

1. 字符串翻转:请把"I am a student.",翻转成".tneduts a ma I";

吾来打个样:

#include <stdio.h>
void reverseCharArray(char *str, char *begin, char *end) {while(begin < end) { //取地址,交换两个字符char temp = *begin;*begin = *end;*end = temp;begin++;end--;}
}char *reverse_str(char *str) {if(NULL == str) { //字符串为空直接返回;return str;}char *begin;char *end;begin = end = str;while(*end != '\0') { //end指向字符串的末尾;end++;}--end;  //取出最后一个'.'字符;//取字符数组下标,进行交换;reverseCharArray(str, begin, end);return str; //返回结果;
}int main(int argc, const char * argv[]) {char str[] = "I am a student.";printf("%s\n", reverse_str(str));return 0;
}

2. 字符串翻转:请把 "I am a student.",翻转成 "I ma a .tneduts";

吾来打个样:

#include <stdio.h>
void reverseCharArray(char *str, char *begin, char *end) {while(begin < end) { //取地址,交换两个字符char temp = *begin;*begin = *end;*end = temp;begin++;end--;}
}char *reverseChar(char *str) {char *begin;char *end;begin = end = str;while (*end != '\0') {if (*end == ' ') {reverseCharArray(str, begin, end - 1);begin = end + 1;}else if (*(end + 1) == '\0') {  //当*(end + 1)取出的是字符串数组最后的'\0'的时候reverseCharArray(str, begin, end);}end++;}return str;
}int main(int argc, const char * argv[]) {char str[] = "I am a student.";printf("%s\n", reverseChar(str));return 0;
}

3. 字符串翻转:请把 "I am a student.",翻转为 "student. a am i";

吾来打个样:

#include <stdio.h>
void reverseCharArray(char *str, char *begin, char *end) {while(begin < end) { //取地址,交换两个字符char temp = *begin;*begin = *end;*end = temp;begin++;end--;}
}char *reverseChar(char *str) {char *begin;char *end;begin = end = str;while (*end != '\0') {if (*end == ' ') {reverseCharArray(str, begin, end - 1);begin = end + 1;}else if (*(end + 1) == '\0') {  //当*(end + 1)取出的是字符串数组最后的'\0'的时候reverseCharArray(str, begin, end);}end++;}return str;
}int main(int argc, const char * argv[]) {char str[] = "I am a student.";char *begin;char *end;begin = end = str;while(*end != '\0') { //end指向字符串的末尾;end++;}--end;  //取出最后一个'.'字符;reverseCharArray(str, begin, end);printf("%s\n", reverseChar(str));return 0;
}

算法小记 · 字符串翻转相关推荐

  1. c++内置函数实现字符串翻转(reverse,strrev,string 构造函数)

    c++内置函数实现字符串翻转(reverse,strrev,string 构造函数) 在写程序的时候,我们经常需要将字符串进行翻转.c++中内置的函数有不少个可以实现该功能. 1.strrev函数.( ...

  2. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | 引入线程安全概念 )

    文章目录 一.引入线程安全概念 二.完整代码示例 一.引入线程安全概念 在上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 ) ...

  3. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 )

    文章目录 一.strncat 字符串连接函数 二.借助 递归函数操作 逆序字符串操作 三.完整代码示例 一.strncat 字符串连接函数 strncat 函数 : 将 const char *src ...

  4. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序打印字符串 | 递归要素 | 递归停止条件 | 递归操作 )

    文章目录 一.借助 递归函数操作 逆序打印字符串 二.完整代码示例 一.借助 递归函数操作 逆序打印字符串 递归需要掌握下面 222 个点 : 参数入栈模型 : 第 111 次 , "sdh ...

  5. 【C 语言】字符串模型 ( 字符串翻转模型 | 抽象成业务函数 | 形参返回值 | 函数返回值 | 函数形参处理 | 形参指针判空 )

    文章目录 一.字符串翻转模型 业务函数 二.完整代码示例 一.字符串翻转模型 业务函数 将上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 ) 的代码 , 主要业务逻辑 , 抽象成函数 ; 字符 ...

  6. 【C 语言】字符串模型 ( 字符串翻转模型 )

    文章目录 一.字符串翻转模型 二.完整代码示例 一.字符串翻转模型 业务场景 : 给定下面的字符串 , 将下面的字符串翻转 ; // 将下面的字符串翻转char str[] = "sdfsd ...

  7. 《ASCE1885的信息安全》の使用Crypto++的MD5算法对字符串进行哈希

    使用Crypto++的MD5算法对字符串进行哈希,先在VS2010中新建Win32 Console Application,取工程名为:Crypto-MD5.在工程主目录中新建文件夹include,将 ...

  8. C++horspool算法查找字符串是否包含子字符串(附完整源码)

    C++horspool算法查找字符串是否包含子字符串 C++Shorspool算法查找字符串是否包含子字符串完整源码(定义,实现,main函数测试) C++Shorspool算法查找字符串是否包含子字 ...

  9. 算法训练 字符串编辑c语言

    算法训练 字符串编辑 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个字符串(长度<=40个字符),并以字符 '.' 结束.编辑功能有: 1 D:删除一个字符,命令的方式为 ...

最新文章

  1. Spring MVC 4
  2. net转java_NET转Java
  3. JS中的NaN和isNaN,简直是双重人格?
  4. 中国SaaS死或生之五:目标、方法、钱,一个都不能少
  5. go 捕获数据库新增数据_更改数据捕获的经验教训
  6. 提高表格可读性的一些技巧
  7. gbdt 算法比随机森林容易_数据挖掘面试准备(1)|常见算法(logistic回归,随机森林,GBDT和xgboost)...
  8. 常见几种USB接口引脚定义,Type A、Type B、Micro USB、Mini USB、Type C
  9. 处理行内元素行内块元素中间空隙
  10. the little schemer 笔记(0)
  11. GSM+GPRS通信模块SIM800C介绍
  12. 各版本Metal支持的iOS版本与MacOS版本
  13. Python实现流星雨效果的代码
  14. java autoconf_PHP动态编译出现Cannot find autoconf
  15. opencv 彩色图像对比度增强
  16. 域名是如何被墙的_域名被墙,域名被墙的解决办法
  17. 企业采购管理系统SRM
  18. .NET Framework Initialization Error
  19. [See How]全栈Node TS框架TSRPC实践教程(一)
  20. 计算机专业python毕业设计题目_计算机科学与技术专业毕业论文参考题目

热门文章

  1. (转)JS正则表达式元字符
  2. redis 3.0 cluster 集群 学习之路篇 [3]
  3. 白光驱动器替代指南(转)
  4. sap 与 sap business one 和国内软件的比较
  5. python 获取文件列表_python获取文件列表
  6. 面试的算法2(C语言)(整理)
  7. VS 2017显示“高级保存选项”命令操作方法
  8. pythonのgevent同步异步区别
  9. android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
  10. 一款免费好用的代码在线比较工具