字符串中删除指定的字符的理解
2014-01-17 16:55
387 查看
在字符串中删除指定的字符的程序请参考:
http://zhedahht.blog.163.com/blog/static/25411174200801931426484/
博主何海涛对本博客文章享有版权。网络转载请注明出处http://zhedahht.blog.163.com/。整理出版物请和作者联系。
可是看这道题的时候关于字符串的删除部分不是很理解....后来仔细想想终于明白了。。
为了简单抛开问题求解,只是理解字符串删除某个字符代码,参看下面的代码:
slow原来只有一个 'H’ 字符,然后判断 fast指向字符是否是字符 ‘o' ,如果不是那么 slow 可以继续增加字符,如果fast指向的是 ’o'字符
那么slow什么也不做。。
这样就可以理解为什么跳过的字符就会删除字符了。。。水平和理解有限..希望有更好的解释。。
http://zhedahht.blog.163.com/blog/static/25411174200801931426484/
博主何海涛对本博客文章享有版权。网络转载请注明出处http://zhedahht.blog.163.com/。整理出版物请和作者联系。
可是看这道题的时候关于字符串的删除部分不是很理解....后来仔细想想终于明白了。。
为了简单抛开问题求解,只是理解字符串删除某个字符代码,参看下面的代码:
#include<iostream> using namespace std; int main(){ char s[] = "hello world"; char *slow,*fast; slow = fast = s; while( '\0' != *fast){ if( *fast != 'o' ){ *slow = *fast; ++slow; } ++fast; } cout<<s<<endl; return 0; }这里 slow 和 fast 开始时分别指向字符串的首地址,可以这么理解 设想 slow 指向的是结果字符串, fast 指向的是原来的字符串,
slow原来只有一个 'H’ 字符,然后判断 fast指向字符是否是字符 ‘o' ,如果不是那么 slow 可以继续增加字符,如果fast指向的是 ’o'字符
那么slow什么也不做。。
这样就可以理解为什么跳过的字符就会删除字符了。。。水平和理解有限..希望有更好的解释。。
相关文章推荐
- 从相应位置开始删除指定字符串的相应个字符
- 删除字符串中指定的字符,如果字符前后有指定的标点符号也一并删除
- 字符串操作之删除指定字符
- C语言删除字符串中的指定字符,字符串连接
- 【我解C语言面试题系列】010 从相应位置开始删除指定字符串的相应个字符
- 在字符串中删除指定字符
- oracle 删除字符串头尾的指定一个字符
- JAVA删除字符串中指定字符集(删除敏感字符)
- 字符串处理 删除指定字符
- 字符串删除指定字符
- c#删除字符串中指定字符
- JAVA 删除字符串里指定字符
- C语言删除字符串中的指定字符,字符串连接
- 【我解C语言面试题系列】011 删除指定字符串的相应字符
- 字符串的一些基本操作,复制,长度,子串查找,单词反转,比较,字符串反转,删除指定字符。
- java删除字符串中的指定字符 .
- 删除字符串中指定位置的字符
- 删除字符串中指定位置的字符
- 删除字符串中指定字符
- 【我解C语言面试题系列】011 删除指定字符串的相应字符