假设我有一个char* word = "abaradasaddragfavvdavgasbga00rarcrawabr0ac0ra0ra0vra0"
,我想从word
删除所有'0' chars
,到位,而无需使用额外的内存或memmove
。我怎么能这样做? 所以输出为:"abaradasaddragfavvdavgasbgararcrawabracraravra"
**我曾尝试**:去除串字符 - Visual C
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
或remove
- 不应该使用额外内存
- 不应将其分配给其他变量
为什么没有'memmove'? – sth
http://whathaveyoutried.com/ –
因为家庭作业,我猜。 – willglynn