簡體   English   中英

從字符串中刪除空格

[英]Space remove from String

#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;
}

在此示例代碼中,輸出為Arijit.Saha ,但我想要的輸出為ArijitSahaStudent 為什么我得到錯誤的輸出? 哪里了。 是從哪里來的?

錯誤在這里:

if(a[i]!=' ')
    final[count]=a[i];
count++;

count++應該包含在if ,因此:

if(a[i]!=' ') {
    final[count]=a[i];
    count++;
}

注意:在if語句之后始終使用花括號被認為是一種良好的編程習慣。

在for循環中,即使a[i] == ' '您也要增加計數。
因此,當a[i] == ' '您只會增加計數,而沒有將final[count]設置為任何值。

我想你要寫:

if (a[i] != ' ')
{
    final[count] = a[i];
    count++;
}

您沒有正確增加計數。 它必須在if循環中。 這可能使您更容易查看事物是否正確縮進。

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

int main(){
  char array[]="Arijit Saha Student";
  spaceremover(array);
  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];
  }
  final[count++]='\0';
  int j=0;
  for(j=0;j<strlen(final);j++)
    printf("%c",final[j]);
  // printf("\n%s",final);
  return 1;
}

在循環中,如果a [i]不等於空格,則計數應增加

if(a[i]!=' ') final[count]=a[i]; count++;

if(a[i]!=' ')
final[count++]=a[i];
//count++;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM