【C 语言】字符串模型 ( 两头堵模型 )
文章目录
- 一、两头堵模型
- 二、完整代码示例
一、两头堵模型
两头堵模型 是 有 222 个指针 , 一个指向字符串头部 , 一个指向字符串尾部 ;
- 头部指针 从左向右 开始遍历 ;
- 尾部指针 从右向左 开始遍历 ’ ’
业务逻辑 : 从 " sdfsdfsdabc4548411abc "
字符串中 , 找出 前后不为空 的 子串长度 ;
声明两个指针 , 分别指向开始 和 结尾处 ;
// 存在如下字符串, 求 前后不为空 的 子串长度char *str = " sdfsdfsdabc4548411abc ";// 两个字符串索引 , i 是指向头部 , j 指向尾部int i = 0, j = strlen(str) - 1;
左侧的指针从左向右遍历 :
// 循环条件是 i 指针指向的 位置 为空 则继续循环// 遇到第一个不为空的字符 , 便停止循环// 停止循环时的 i 指向从左侧开始第一个不为空的字符while(isspace(str[i]) && str[i] != '\0'){i++;}
右侧的指针从右向左遍历 :
// 循环条件是 j 指针指向的 位置 为空 则继续循环// 遇到第一个不为空的字符 , 便停止循环// 停止循环时的 j 指向从右侧开始第一个不为空的字符while(isspace(str[j]) && str[j] != '\0'){j--;}
二、完整代码示例
代码示例 :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{// 存在如下字符串, 求非空格子串的长度char *str = " sdfsdfsdabc4548411abc ";// 两个字符串索引 , i 是指向头部 , j 指向尾部int i = 0, j = strlen(str) - 1;// 保存非空字符串长度int count = 0;// 循环条件是 i 指针指向的 位置 为空 则继续循环// 遇到第一个不为空的字符 , 便停止循环// 停止循环时的 i 指向从左侧开始第一个不为空的字符while(isspace(str[i]) && str[i] != '\0'){i++;}// 循环条件是 j 指针指向的 位置 为空 则继续循环// 遇到第一个不为空的字符 , 便停止循环// 停止循环时的 j 指向从右侧开始第一个不为空的字符while(isspace(str[j]) && str[j] != '\0'){j--;}// 计算结果count = j - i + 1;// 打印结果printf("count = %d\n", count);// 命令行不要退出system("pause");return 0;
}
执行结果 :
count = 21
请按任意键继续. . .
【C 语言】字符串模型 ( 两头堵模型 )相关推荐
- 【C 语言】字符串模型 ( 两头堵模型 | 将 两头堵模型 抽象成业务模块函数 | 形参返回值 | 函数返回值 | 形参指针判空 | 形参返回值操作 )
文章目录 一.将 两头堵模型 抽象成业务模块函数 二.完整代码示例 一.将 两头堵模型 抽象成业务模块函数 将 两头堵模型 抽象成业务模块函数 相关要点 : 形参返回值 : 函数的返回值 , 一般使用 ...
- 两头堵模型取中间字符
#include<stdio.h> #include<stdlib.h> #include<string.h> #include <ctype.h>in ...
- 【C 语言】字符串模型 ( strstr-do…while 模型 )
文章目录 前言 一.strstr 函数 二.子串查找业务场景 三.代码示例 前言 字符串开发模型 : strstr-while/do-while 模型 : 在 字符串 中 查找 子串特征 ; 两头堵模 ...
- C语言字符串相关一级指针内存模型
C语言字符串相关一级指针内存模型 通过实例探索一级指针内存模型 通过实例探索一级指针内存模型 void main() {char buf[20]= "aaaa";char buf2 ...
- 【C 语言】字符串 一级指针 内存模型 ( 指定大小字符数组 | 未指定大小字符数组 | 指向常量字符串的指针 | 指向堆内存的指针 )
文章目录 一.字符串 一级指针 内存模型 1.指定大小字符数组 2.未指定大小字符数组 3.指向常量字符串的指针 4.指向堆内存的指针 一.字符串 一级指针 内存模型 #include <std ...
- R语言机器学习Caret包(Caret包是分类和回归训练的简称)、数据划分、数据预处理、模型构建、模型调优、模型评估、多模型对比、模型预测推理
R语言机器学习Caret包(Caret包是分类和回归训练的简称).数据划分.数据预处理.模型构建.模型调优.模型评估.多模型对比.模型预测推理 目录
- R语言构建回归模型并进行模型诊断(线性关系不满足时)、进行变量变换(Transforming variables)、使用car包中的boxTidwell函数对预测变量进行Box–Tidwell变换
R语言构建回归模型并进行模型诊断(线性关系不满足时).进行变量变换(Transforming variables).使用car包中的boxTidwell函数对预测变量进行Box–Tidwell变换 目 ...
- R语言使用lm构建线性回归模型、并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图、可视化模型的残差、模型预测中系统误差的一个例子 、自定义函数计算R方指标和均方根误差RMSE
R语言使用lm构建线性回归模型.并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图.可视化模型的残差.模型预测中系统误差的一个例子 .自定义函数计算R方指标和均方根误差RMSE 目 ...
- R语言使用lm构建线性回归模型、并将目标变量对数化实战:可视化模型预测输出与实际值对比图、可视化模型的残差、模型系数(coefficient)、模型总结信息(summary)、残差总结信息
R语言使用lm构建线性回归模型.并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图.可视化模型的残差.模型系数(coefficient).模型总结信息(summary).残差总结信 ...
最新文章
- mern技术栈好处?_通过构建运动追踪器应用程序来学习MERN堆栈(MERN教程)
- mongodb - 前端form表单数据传输,在保存和清除的数据格式的处理程序的 - 非递归...
- 开发人员拟在澳洲建立一座价值5000万美元的BCH科技园
- 不该被忽视的CoreJava细节(四)
- python legb_理解 Python 的 LEGB.
- Java IO(BIO, NIO, AIO) 总结
- 【CV学习笔记】色彩空间
- Atitit 文件远程传输读写协议 scp http ftp nfs webdav smb D:\Program Files\Git\usr\bin\scp.exe 4.密码安全策略不完善 在
- 通过图标来识别网站用户指纹
- 毕设项目 - 大数据+爬虫 疫情分析可视化
- qsdk53:QCA9531+QCA9887生产无法校准问题分析及解决方案
- 怎么给word文档注音_如何给Word文档中的汉字加拼音?一键加拼音超级方便
- php求二叉树的深度(1、二叉树就可以递归,因为结构和子结构太相似)(2、谋而后动,算法想清楚,很好过的)...
- 鸿蒙三千法则排名,三千法则名称大全_十大最强法则
- python计算机器人运动学分析_orocos_kdl学习(二):KDL Tree与机器人运动学
- LABVIEW语音识别
- 机器人算法工程师入门指南(四)常用技能与如何备战offer
- 2022年全国PMP考试地点汇总,你都知道吗?
- 嵌入式自动判断是否插入网线的几种方法
- 学习笔记1--自动驾驶系统架构
热门文章
- 模块全解======ruby的类是单继承生物、所以出现了module、实现了多继承
- (转)让你受益终身的10个Word实用技巧
- day19_MD5加密_Apache DBUtils_监听器 知识回顾
- DataGridView的单元格控制只能输入数字
- Flex前端与Java服务端交互,反射机制挑大旗
- python转载[编码问题]
- ibatis 的 This SQL map does not contain a MappedStatement的错误
- 软件相关模块与ansible剧本
- banner手动切换效果
- 洛谷P2312解方程