使用字串概念移除多餘空格的 C 程式。


問題

在執行時,透過使用 while 迴圈檢查每個字元索引處的空格,從輸入的字串中移除所有多餘的空格。

解決方案

考慮以下示例:

它會移除給定字串中的所有空格。給定的字串是 **Tutorials Point C Programming**。移除空格後的結果是 **TutorialsPointCProgramming**。

字元陣列稱為字串。

以下是字串的宣告:

char stringname [size];

例如,char string[50]; 長度為 50 個字元的字串。

初始化

  • 使用單字元常量。
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • 使用字串常量。
char string[10] = “Hello”:;

訪問

使用控制字串“%s”訪問字串,直到遇到‘\0’。

我們用來移除字串之間多餘空格的邏輯如下:

len = strlen(string);
for(i=0; i<len; i++){
   if(string[0]==' '){
      for(i=0; i<(len-1); i++)
      string[i] = string[i+1];
      string[i] = '\0';
      len--;
      i = -1;
      continue;
   }
   if(string[i]==' ' && string[i+1]==' '){
      for(j=i; j<(len-1); j++){
         string[j] = string[j+1];
      }
      string[j] = '\0';
      len--;
      i--;
   }
}

示例

以下是使用字串概念移除句子中所有多餘空格的 C 程式:

#include<stdio.h>
int main() {
   char string[200];
   int i, j, len;
   printf("Enter a statement: ");
   gets(string);
   len = strlen(string);
   for(i=0; i<len; i++) {
      if(string[0]==' ') {
         for(i=0; i<(len-1); i++)
         string[i] = string[i+1];
         string[i] = '\0';
         len--;
         i = -1;
         continue;
      }
      if(string[i]==' ' && string[i+1]==' ') {
         for(j=i; j<(len-1); j++) {
            string[j] = string[j+1];
         }
         string[j] = '\0';
         len--;
         i--;
      }
   }
   printf("
New String after removing extra spaces is = %s", string);    getch();    return 0; }

輸出

當執行上述程式時,它會產生以下輸出:

Enter a statement: Welcome to The world of C programming
New String after removing extra spaces is = Welcome to The world of C programming

更新時間: 2021年3月25日

5K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.