文章目录

  • 一、将 两头堵模型 抽象成业务模块函数
  • 二、完整代码示例

一、将 两头堵模型 抽象成业务模块函数


将 两头堵模型 抽象成业务模块函数 相关要点 :

  • 形参返回值 : 函数的返回值 , 一般使用 函数形参 间接赋值 进行返回 ; 下面的代码中 int *count 是返回值 ;
int get_count(char *str_all, int *count)
  • 函数返回值 : 函数的返回值 , 反映的是函数的执行结果状态 , 返回 0 执行成功 , 返回 -1 执行失败 ;
  • 形参指针判空 : 函数的第一项任务就是 判定 形参指针是否合法 , 如果任何一个指针为空 , 直接返回 -1 ;
    // 验证指针合法性 , 指针为空直接返回报错if(str_all == NULL || count == NULL){printf("error : str_all == NULL || count == NULL");return -1;}
  • 形参返回值操作 : 函数的真正返回值 , 不要急着写入到指针指向的内存中 , 先放在局部变量中 , 最终执行完毕后 , 再写出到指针指向的内存中 ;
    // 保存非空字符串长度 , 局部临时变 , 计算结果int count_tmp = 0;// 计算结果count_tmp = j - i + 1;// 通过间接赋值设置返回值*count = count_tmp;

二、完整代码示例


完整代码示例 :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int get_count(char *str_all, int *count)
{// 验证指针合法性 , 指针为空直接返回报错if(str_all == NULL || count == NULL){printf("error : str_all == NULL || count == NULL");return -1;}// 局部临时指针变量 接收 函数形参char *str = str_all;// 两个字符串索引 , i 是指向头部 , j 指向尾部int i = 0, j = strlen(str) - 1;// 保存非空字符串长度 , 局部临时变 , 计算结果int count_tmp = 0;// 循环条件是 i 指针指向的 位置 为空 则继续循环// 遇到第一个不为空的字符 , 便停止循环// 停止循环时的 i 指向从左侧开始第一个不为空的字符while(isspace(str[i]) && str[i] != '\0'){i++;}// 循环条件是 j 指针指向的 位置 为空 则继续循环// 遇到第一个不为空的字符 , 便停止循环// 停止循环时的 j 指向从右侧开始第一个不为空的字符while(isspace(str[j]) && str[j] != '\0'){j--;}// 计算结果count_tmp = j - i + 1;// 通过间接赋值设置返回值*count = count_tmp;return 0;
}int main()
{// 存在如下字符串, 求 前后不为空 的 子串长度char *str = "   sdfsdfsdabc4548411abc    ";// 要统计的结果int count = 0;// 调用函数计算上述字符串 收尾不为空 的子串int ret = get_count(str, &count);// 打印结果printf("count = %d\n", count);// 命令行不要退出system("pause");return 0;
}

执行结果 :

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

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

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

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

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

  3. C语言字符串中最后一个单词的长度的算法(附完整源码)

    C语言字符串中最后一个单词的长度的算法 C语言字符串中最后一个单词的长度的算法完整源码(定义,实现,main函数测试) C语言字符串中最后一个单词的长度的算法完整源码(定义,实现,main函数测试) ...

  4. C语言字符串左右排序交换

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105164028 C ...

  5. 【C 语言】字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )

    文章目录 一.函数形参使用推荐方法 二.完整代码示例 一.函数形参使用推荐方法 在函数中 , 形参 中的 指针变量 , 不建议直接使用 ; 推荐 在 函数中 , 定义 局部 指针变量 , 接收 形参中 ...

  6. 【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )

    文章目录 一.指针使用前判空 二.while 空语句 三.代码示例 一.指针使用前判空 在任何指针使用之前 , 要先进行判空 ; 尤其是 函数 形参 指针 , 使用前先 判断该 指针变量 是一个合法的 ...

  7. C语言——字符串函数(必收藏)

    目录 1.strlen 1.1易错(例) 1.2模拟实现 1.2.1计数器形式 1.2.2指针-指针形式 1.2.3递归形式 2.strcpy 2.1易错(例) 2.2模拟实现 3.strcat 3. ...

  8. C语言字符串相关一级指针内存模型

    C语言字符串相关一级指针内存模型 通过实例探索一级指针内存模型 通过实例探索一级指针内存模型 void main() {char buf[20]= "aaaa";char buf2 ...

  9. 【视频】Python和R语言使用指数加权平均(EWMA),ARIMA自回归移动平均模型预测时间序列...

    原文链接:http://tecdat.cn/?p=21773 时间序列(从现在起称为TS)被认为是数据科学领域中鲜为人知的技能之一(点击文末"阅读原文"获取完整代码数据). 视频: ...

最新文章

  1. 基于Go的语义解析开源库FMR,“屠榜”模型外的NLP利器
  2. ML之LiR:利用LiR线性回归算法(自定义目标函数MSE和优化器GD)对Boston房价数据集(两特征+归一化)进行回归预测
  3. python 之GUI设计:messabebox组件
  4. wxWidgets:使用自定义对话框和 sizer
  5. /boot/grub/grub.conf文件详解
  6. HDU - 4552 怪盗基德的挑战书(后缀数组+RMQ/KMP+dp)
  7. android短信增加条目,Android仿短信条目右上角的红色小圆球提示气泡
  8. PHP制作登录异常ip检测功能实例
  9. (操作系统题目题型总结)第三章:同步与互斥
  10. 电脑重置后我的电脑没有了怎么办_笔记本电脑没有声音怎么办?
  11. T-SQL常用日期函数
  12. java飞机大战游戏
  13. 计算机导论dos实验报告,计算机导论实验报告-DOS常用命令的使用.doc
  14. android 添加文件打开方式
  15. 【用来参考】AndroidQ SystemUI之锁屏加载(上)滑动锁屏
  16. 在firefox的flashgot中配置各种下载器
  17. linux cp dd 不同文件系统,根文件系统的制作
  18. SpringBoot爬虫
  19. 卡内基·梅隆大学计算机科学系主任周以真的父母是中国人吗,计算思维(Computational Thinking)...
  20. cesium实现鹰眼地图(三维)效果

热门文章

  1. PhpExcel中文帮助手册|PhpExcel基本使用方法及常见问题解答
  2. VB 6.0中如何访问EXCEL 2007及EXCEL 2010
  3. Linux 的性能进行监测
  4. char,TCHAR,WCHAR区别
  5. SpringBoot 2.0 编程方式配置,不使用默认配置方式
  6. mysql字段中ID值自动增长
  7. Flex前端与Java服务端交互,反射机制挑大旗
  8. Mybatis-plus多表关联查询,多表分页查询
  9. day88 Vue基础
  10. 创建 Java 第三方类库,以及制作类库的Javadoc