假设我有一个char* word = "abaradasaddragfavvdavgasbga00rarcrawabr0ac0ra0ra0vra0"
并且我想'0' chars
从word
, 中删除所有的,而不使用额外的内存或memmove
. 我怎么能做到?所以输出将是:"abaradasaddragfavvdavgasbgararcrawabracraravra"
**我尝试过的**:
void removeZeros( char* word) {
int size = strlen( word );
int i;
for( i = 0; i < size; i++ ){
if( word[i] == '0' ){
word[ i ] = word[ i + 1 ];
i++;
}
}
}
*规则 **:
- 应该就地完成
- 不应调用任何内置函数,如
memmove
orremove
- 不应该使用额外的内存
- 不应将其分配给另一个变量