空格从String中删除

Ari*_*aha 0 c

#include<stdio.h>
#include<string.h>

int main(){
    char array[]="Arijit Saha Student";
    spaceremover(array);
    getch();
    return 1;
}

int spaceremover(char a[]){
    int i;
   // printf("L=%d",strlen(a));
    char final[strlen(a)+1];
    int count=0;
    for(i=0;i<strlen(a);i++)
    {
        if(a[i]!=' ')
            final[count]=a[i];
        count++;
    }
    final[count]='\0';
    int j=0;
    for(j=0;j<strlen(final);j++)
    printf("%c",final[j]);
    // printf("\n%s",final);
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

使用此示例代码输出Arijit.Saha,但我想要的输出是ArijitSahaStudent.为什么我得错了输出?在哪里.来自哪里?

Kla*_*äck 6

错误在这里:

if(a[i]!=' ')
    final[count]=a[i];
count++;
Run Code Online (Sandbox Code Playgroud)

count++应列入if,那么:

if(a[i]!=' ') {
    final[count]=a[i];
    count++;
}
Run Code Online (Sandbox Code Playgroud)

注意:在if语句后总是使用花括号被认为是一种很好的编程习惯.