删除空格也是面试常见问题,刚看到题一般写了个复杂度较高的,后来改进下复杂度降低,和大家分享下:
#include <stdio.h>
/**
* 删除字符串空格
*/
void delSpace(char *str)
{
char *p = str;
char *t =p;
while (*p != '\0') {
if (*p == ' ') {
t++;
if (*t != ' ') {
*p = *t;
*t = ' ';
}
}else
{
p++;
t = p;
}
}
}
int main(int argc, const char * argv[]) {
char str[] = "abc def g h";
delSpace(str);
printf("%s\n",str);
return 0;
}