|
发表于 2012-8-4 12:30:28
|
显示全部楼层
本帖最后由 1799697736 于 2012-8-4 12:32 编辑
- //////////你这个代码被减的字符串必须包含用来减的字符串,否则也会出错
- # include <stdio.h>
- int del( char *str, char *sub )
- {
- char *p = str, *q = sub, *s;
- int i = 0;
- while( p )
- {
- while( *p == *q ) //没多大改变,你不能在判断的时候用++,不然会很乱
- {
- p++;
- q++;
- i++; //i计算删除的个数
- if( *q == 0 ) //如果q已经结束
- {
- s = p; //s指向p当前的位置
- p = p - i; //p退到需要删除的第一个字符的位置
- while( *s ) //当s没结束时
- {
- * p++ = * s++; //把后面的依次复制到p当前的位置
- }
- *p = 0; //结束字符串
- return 1;
- }
- }
- q = sub; //如果不等、就使q归为、p指向下一个元素
- p++;
- }
- return 0;
- }
- void main()
- {
- char a[10], b[10];
- printf("Enter the a and b :\n");
- gets( a );
- gets( b );
- if( del( a, b ) )
- {
- printf("%s\n", a);
- }
- else
- printf("NULL!\n");
- }
复制代码 |
|