使用字符串概念移除多余空格的 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+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告