注册 登录
编程论坛 C语言论坛

删除字符串中的空格字符

hffjhhh 发布于 2020-06-17 15:20, 1259 次点击
要求该函数删除字符串中的空格字符,但无法实现,什么原因,如何修改?
程序代码:
int *ar(char *r){
    char *e;
    char *p;
    p=r;
    p=(char *)malloc(sizeof(char)*100);
    while(*p){
        while(*p==' '){
            e=p;
            for(;*p!='\0';p++)
                *p=*(p+1);
            p=e;
        }
        while(*p&&*p!=' '){
            p++;
            continue;
        }
        if(*p=='\0')
            return p;
    }
}
2 回复
#2
fulltimelink2020-06-17 16:22
程序代码:

char *ar(char *r) {
    char * back = (char *)malloc(sizeof(char) * (strlen(r)+1));
    char * back_move = back;
    while ('\0' != *r) {
        if(' ' != *r){
            *back_move++ = *r;
        }
        r++;
    }
    *back_move = '\0';
    return back;
}



有个strtok函数,可以参考下
#3
纯蓝之刃2020-06-17 18:55
程序代码:
#include<stdio.h>
#include<stdlib.h>
void ar(char *r)
{
    char *p=r;

    while(*r!='\0')
    {
        if(*r!=' ')
        {
            *p=*r;
            p++;
        }
        r++;
    }
    *p=*r;
}

int main()
{
    char str[80];
    gets(str);

    ar(str);
    puts(str);

    return 0;
}
1