假設我有一個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