删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)
来源:互联网 发布:爱青岛软件 编辑:程序博客网 时间:2024/06/03 02:57
题目:删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)
代码:
void DelSpace(char *s){if(s == NULL)return;int flag = 0 ;if(*s == ' ')flag = 1;char *p = s;int j = 0;while(*p != '\0'){if(*p != ' ')s[j++] = *p;else{while(*p == ' ')p++;if(flag==1 || *p=='\0')flag = 0;elses[j++] = ' ';p--;}p++;}s[j] = '\0';}
上述代码中需要注意的是函数调用的约束。
从代码中可以看到在函数内部并没有自己分配新的空间,同时也没有在参数列表中引用额外开辟的空间,所有的改变都是在原有字符串的基础上进行修改的,这个地方就需要注意了,因为字符串的声明有两种方法
//字符数组char str[] = "Hello World!"另外一种是字符串常量
//字符串常量char * str = "Hello World!"但是上述两个字符串有明显的区别,字符数组是字符串变量,可以调用上面的DelSpace()函数直接在变量空间上进行修改,但是字符串常量是一个常量,常量是不可修改的,因此如果声明的是字符串常量的话,调用上述删除空格函数会导致
Unhandled exception in hua.exe: 0xC0000005: Access Violation. 这主要是由于要修改字符串常量的错误造成。
因此如果不分配空间直接修改仅适用于字符串数组。而不能用于字符串常量。
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化(合并)为1个
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个。
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个。
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个。
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个。
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个
- 面试题 删除字符串开始以及末尾的若干空格,并且把中间多个空格转化为一个
- 删除字符串中多余的空格]给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个
- C++ 分割字符串,可以识别开头的,中间的,末尾的一个或者多个空格
- 给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
- 删除字符串开始和结尾空格,并将中间多个空格合并为一个空格
- 删除字符串中间的空格
- 删除字符串中间的空格
- 删除字符串中间的空格
- 给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个
- 三、第一个cocos2d程序的代码分析
- c++空指针赋初值
- Java序列化问题总结
- 中国 外包 2012(zz.IS2120@BG57IV3)
- py2exe使用
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)
- ASP.NET高级配置
- stringstream的用法
- iPhone对OpenGL ES的支持程度!
- 数据库并发控制
- java基础:异常
- ORACLE中调用JAVA类才出现ORA-29538、ORA-29532、ORA-29913问题解决
- extjs Grid 时,默认初始选中
- 获得电池充电状态