出版社类网站模板,域名信息,wordpress 建站 搜索,seo推广主要做什么的说在前面的话
字符串操作在很多C语言比赛里面都有涉及#xff0c;最近公众号里面的C语言比赛#xff0c;都是两个关于字符串操作的题目#xff0c;希望大家认真看题目。
直接上代码
/************************************************************************* Fil…说在前面的话
字符串操作在很多C语言比赛里面都有涉及最近公众号里面的C语言比赛都是两个关于字符串操作的题目希望大家认真看题目。
直接上代码
/************************************************************************* File Name: trim.c Author: Mail: Created Time: Mon 12 Nov 2018 10:16:04 AM CST************************************************************************/#includestdio.h/*****************************************************************************函 数 名 : strtrim功能描述 : 删除行首、行尾空白符号输入参数 : char *is 输出参数 : 无返 回 值 : char *调用函数 : 被调函数 : 修改历史 :1.日 期 : 2018年11月12日作 者 : strtrim修改内容 : 新生成函数*****************************************************************************/
char * strtrim(char *s) {char *p s;char *q s;//去掉行首的空格while (*p || *p\t) p;//赋值while ((p ! NULL)(q ! NULL)(*p ! \0)(*p ! \0)){*q *p;};//删除\0字符 注意是 -2 上面q是先操作再自加q - 2;//去掉行末的空格while (*q || *q\t) --q;//给字符串添加字符结束标志*(q1) \0;//这里的return s要注意看好//因为p q经过一系列操作后已经不是原来的位置越界了 s还在原来位置所以return s才是正确的。return s;
}/*****************************************************************************函 数 名 : strtrimc功能描述 : 删除字符串空白符,包括行首和行尾输入参数 : char * s输出参数 : 无返 回 值 : char *调用函数 : 被调函数 : 修改历史 :1.日 期 : 2018年11月12日作 者 : strtrim修改内容 : 新生成函数*****************************************************************************/
char * strtrimc( char * s )
{char * p1 s;char * p2 s;while(*p1 ! \0){while(*p1 || *p1 \t){p1 ;}* p2 *p1 ;}*p2 \0;return (s);
}
void main(void)
{char str[1000] { adf asdfasldf jjjjjjjjj iiii };char str1[1000] { adf asdfasldf jjjjjjjjj iiii };puts(Start main.);printf(%s\n,strtrimc(str));printf(%s\n,strtrim(str1));
}
注意问题
1 常量区
刚开始的时候我写的是char * s adfasdfasdfsf adfasdf adfasdfad ; 然后出现段错误这里定义的s保存在的是常量区所以不能做赋值等操作大家对字符串操作的时候要特别注意。
2指针的返回值问题 原来我返回的是p1 ,p1 p2 s原来是相等的但是经过一系列运算后他们的值已经不相等了他们的值如上面显示那样所以返回值一直要返回s。