C代码:清理一行字串前后的无效字符
这个代码就记录在此。道理很简单,就是处理起来略微麻烦。
代码经过测试,运行正常。各种情形应该都考虑到了。
#define LINE_VALID_CHAR(pBuffer,nStart) (pBuffer[nStart] != ' ' && pBuffer[nStart] != '\r' && pBuffer[nStart] != '\n')bool trim(char* pText)
{return trim2(pText, NULL);
}/**
True:当前行有值。
False:当前行无值。*/
bool trim2(char* pText, char* pNew)
{int src_len = strlen(pText);if (src_len == 0){return false;}char* pData = (pNew != NULL ? pNew : pText);int data_end = 0;for (data_end=src_len-1; data_end>=0; data_end--){if (LINE_VALID_CHAR(pText, data_end)){break;}}//全部是无效值if (data_end < 0){pData[0] = 0;return false;}int data_start = 0;for (data_start=0; data_start<data_end; data_start++){if (LINE_VALID_CHAR(pText, data_start)){break;}}int data_len = data_end-data_start+1;if (data_len == 0){pData[0] = 0;return false;}if (data_start > 0 || data_end < (src_len-1)){strncpy(pData, pText+data_start, data_len);pData[data_len] = 0;}return true;
}
C代码:清理一行字串前后的无效字符相关推荐
- LeetCode中等题之无重复字符的最长字串
题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &q ...
- @有两个含义:1,在参数里,以表明该变量为伪参数 ,在本例中下文里将用@name变量代入当前代码中2,在字串中,@的意思就是后面的字串以它原本的含义显示,如果不...
@有两个含义:1,在参数里,以表明该变量为伪参数 ,在本例中下文里将用@name变量代入当前代码中 2,在字串中,@的意思就是后面的字串以它原本的含义显示,如果不加@那么需要用一些转义符\来显示一些特 ...
- 单字java_Java 字串阵列添加单字问题,以下是题目,和自己写的代码,请帮忙看看,谢谢!...
撰写程式,在其中使用10个字串所组成的阵列,请撰写执行下列作业的方法:让使用者在文字栏位中输入单字:显示所有输入的单字,以便使用者确认输入是否无误:让使用者在文字栏位中输入... 撰写程式,在其中使用 ...
- 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...
问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y=& ...
- 字符串相关处理kmp,前缀数,后缀树,后缀数组,最长回文串,最长重复字串,最长非重复字串
1. 最长回文串 一般用后缀数组或者后缀树可以解决, 用此方法:http://blog.csdn.net/v_july_v/article/details/6897097 预处理后缀树,使得查询LCA ...
- 信息学奥赛一本通(2050:【例5.20】字串包含)
2050:[例5.20]字串包含 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 613 通过数: 197 [题目描述] 字符串移位包含问题. 对于一个字符 ...
- 蓝桥杯基础练习之 闰年判断 、 01字串 、查找整数、数列特征 、字母图形
闰年判断 问题描述 给定一个年份,判断这一年是不是闰年. 当以下情况之一满足时,这一年是闰年: 1. 年份是4的倍数而不是100的倍数: 2. 年份是400的倍数. 其他的年份都不是闰年. 输入格式 ...
- 第六周作业(等值字串,KMP匹配,大整数相乘,最长公共子串,判断两个字符串是否匹配,最长回文子串,年号字串)
目录 1.等值字串 2.KMP匹配 3.大整数相乘 4.最长公共子串 5.判断两个字符串是否匹配 6.最长回文字串 7.年号字串 补发一下,原来忘记发了. 1.等值字串 [问题描述]如果字符串的一个子 ...
- 使用XML在MSSQL把字串分解
今天要在mssql里处理一串Email地址.以分号分开的.以前自己写过一个split函数的.这次想使用xml来处理. mssql 2000和mssql 2005数据库对xml的支持有些不同.至少mss ...
- 喜欢把代码写一行的人_我最喜欢的代码行
喜欢把代码写一行的人 Every developer has their favourite patterns, functions or bits of code. This is mine and ...
最新文章
- 黑盒测试方法之边界值分析法
- 北大电池新研究登上Nature:3万次循环测试,性能衰减不到30%,大幅提高锂空电池性能...
- 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-逻辑回归与交叉熵概述-05
- Linux Wireless架构总结
- 解决idea文件名称大小写导致GIT无法提交问题
- 信号扫描_微观世界扫描电子显微镜(SEM)
- linux内容对齐的快捷键,linux第一波命令总结
- element ui设置表格表头高度和每一行的高度
- mysql插入blob报错_java如何向mysql写入blob数据?
- C++ - 操作运算符
- 广东省深圳市谷歌卫星地图下载
- 简单的matlab阶乘计算
- 等比缩放公式_图片等比例缩小算法
- Unity期末AI足球游戏小项目(免费开源)
- 生物学中的云计算和大数据
- 腾讯云直播产品系列(一):标准直播POC实践
- ListView缓存机制小结
- 毕业论文避免查重率过高技巧
- 俺同学的QQ签名,我晕~
- 美国陆军正在考虑建立人工智能任务组
热门文章
- 安卓系统镜像_安卓手机 F2FS文件系统镜像快速解析技巧
- 知识竞赛的环节主题文件准备的四大步骤及重要提示
- linux CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙
- linux chmod命令
- Linux -- 在文件中添加信息的方法(转)
- PyCharm下载及使用
- 能分析压缩的日志,且基于文件输入的PYTHON代码实现
- java实现基于关键字的文件夹(文件)的搜索、文件夹(文件)的复制、删除
- php中json_encode中文编码问题(转)
- java开发电脑分频器,FPGA设计——分频器(2.5分频器的程序)