文章目录

  • 一、字符串翻转模型 业务函数
  • 二、完整代码示例

一、字符串翻转模型 业务函数


将上一篇博客 【C 语言】字符串模型 ( 字符串翻转模型 ) 的代码 , 主要业务逻辑 , 抽象成函数 ;

字符串翻转模型 业务函数 要点 :

  • 形参返回值 : 函数的返回值 , 一般使用 函数形参 间接赋值 进行返回 ; 下面的代码中 char *str 是返回值 ;
int inverse(char *str)
  • 函数返回值 : 函数的返回值 , 反映的是函数的执行结果状态 , 返回 0 执行成功 , 返回 -1 执行失败 ;
  • 函数形参处理 : 在 函数中 , 如果涉及到修改 形参 指针变量 , 一般不直接使用形参 , 创建一个临时局部变量 , 接收形参 , 然后再执行相关操作 ;
    // 创建临时变量接收 函数形参 , 不要直接改变形参的函数指向char *str_tmp = str;
  • 形参指针判空 : 函数的第一项任务就是 判定 形参指针是否合法 , 如果任何一个指针为空 , 直接返回 -1 ;
    // 判断传入的字符串指针是否为空if(str_tmp == NULL){printf("error : str == NULL\n");return -1;}

二、完整代码示例


完整代码示例 :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>/** 将参数字符串翻转*/
int inverse(char *str)
{// 创建临时变量接收 函数形参 , 不要直接改变形参的函数指向char *str_tmp = str;// 判断传入的字符串指针是否为空if(str_tmp == NULL){printf("error : str == NULL\n");return -1;}// 计算字符串长度int len = strlen(str_tmp);// 指向字符串开始位置的指针char *p_start = str_tmp;char *p_end = str_tmp + len - 1;// 从两边向中间遍历// 利用指向收尾的指针 , 交互指针指向的元素while (p_start < p_end) {// 交换收尾字符// 记录 p_start 指针指向的首部字符char c = *p_start;// 将尾部字符赋值给首部字符*p_start = *p_end;// 将首部字符赋值给尾部字符*p_end = c;// 指向头部的指针自增p_start++;// 指向尾部的指针自减p_end--;}return 0;
}int main()
{// 将下面的字符串翻转char str[] = "sdfsdfsdabc4548411abc";// 调用函数翻转字符串int ret = inverse(str);// 打印结果printf("str = %s\n", str);// 命令行不要退出system("pause");return 0;
}

执行结果 :

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

  1. 【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )

    文章目录 前言 一.业务子函数接口定义要点 二.完整代码示例 前言 字符串开发模型 : strstr-while/do-while 模型 : 在 字符串 中 查找 子串特征 ; 两头堵模型 : 两个指 ...

  2. 【C 语言】字符串模型 ( 两头堵模型 | 将 两头堵模型 抽象成业务模块函数 | 形参返回值 | 函数返回值 | 形参指针判空 | 形参返回值操作 )

    文章目录 一.将 两头堵模型 抽象成业务模块函数 二.完整代码示例 一.将 两头堵模型 抽象成业务模块函数 将 两头堵模型 抽象成业务模块函数 相关要点 : 形参返回值 : 函数的返回值 , 一般使用 ...

  3. 数据类型Map判空 、空字符串、空key值等各种判断方法,全网最详细

    Map集合对于开发人员来说,除了JSON以外,这种key,value存储的方式最熟悉不过了,做项目的过程中,会高频用到Map的数据结构.在业务逻辑层处理中,往往会对Map数据类型进行一些判空的处理,自 ...

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

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

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

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

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

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

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

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

  8. 【C 语言】字符串模型 ( strstr-do…while 模型 )

    文章目录 前言 一.strstr 函数 二.子串查找业务场景 三.代码示例 前言 字符串开发模型 : strstr-while/do-while 模型 : 在 字符串 中 查找 子串特征 ; 两头堵模 ...

  9. 【C 语言】字符串拷贝 ( 字符串拷贝业务逻辑代码 | 分离 主函数 与 字符串拷贝 业务模型 )

    文章目录 一.字符串拷贝业务逻辑代码 二.分离 主函数 与 字符串拷贝 业务模型 一.字符串拷贝业务逻辑代码 下面的代码 , 是 字符串 拷贝 最简单的代码 , 仅 使用 指针 遍历内存 , 实现了字 ...

最新文章

  1. 【 MATLAB 】norm ( Vector and matrix norms )(向量范数以及矩阵范数)
  2. 单例模式中的懒汉式以及线程安全性问题
  3. Javascript模块化编程
  4. WebDAV方式访问Exchange 2003收件箱程序
  5. 输入框限定保留三位小数点
  6. c# uri.host_C#| Uri.CheckHostName()方法与示例
  7. CF 132E 费用流
  8. Multi-thread--多线程运行实例
  9. ViewPager 无限循环遇到的坑 viewpager.setOffscreenPageLimit(2);
  10. 20个Flutter实例视频教程-01节底部导航栏和切换效果的制作-1
  11. ResourceBundle 用法
  12. 【测试专场沙龙报名】千万级日活App的质量保证
  13. 复旦-华盛顿大学EMBA 二十年20人丨徐欣:从外企转战民企的变身
  14. 9月20日云栖精选夜读:异构计算高性能计算分论坛——揭秘拿什么实现超算平民化、国际化?
  15. java大作业设计_Java程序设计_大作业.doc
  16. Hashtable和hashMap有什么区别
  17. 钓鱼篇-利用RLO隐藏exe文件捆绑office免杀-远程模板加载上线CS
  18. 合泰HT32F52342/HT32F52352芯片Pack下载和工程例程下载
  19. 培训机构要不要去?适合谁去
  20. 2018苹果发布会新品 是如何成为众商家的追热点目标

热门文章

  1. 版本效果MoonWarrior cocos2d-x版本 --1
  2. 《C++STL基础及应用》读书笔记
  3. 后盾网lavarel视频项目---lavarel多表关联一对多操作实例
  4. 架构模式: 事务日志跟踪
  5. 20175208『Java程序设计』课程 结对编程练习_四则运算
  6. Luogu P1886 滑动窗口
  7. JSON返回DateTime/Date('123123123')/解决办法
  8. ubuntu设置root用户密码
  9. 调整代码生成工具Database2Sharp的Winform界面生成,使其易于列表工具栏的使用。...
  10. asm 32 /64