Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

문자열 개념을 사용하여 추가 공백을 제거하는 C 프로그램.

<시간/>

문제

문자의 각 인덱스에서 공백을 확인하여 while 루프를 사용하여 런타임에 입력된 문자열에서 모든 추가 공백을 제거합니다.

해결책

아래 주어진 예를 고려하십시오 -

주어진 문자열에서 모든 공백을 제거합니다. 주어진 문자열은 튜토리얼 포인트 C 프로그래밍입니다. . 공백을 제거한 후의 결과는 TutorialsPointCProgramming입니다. .

문자 배열을 문자열이라고 합니다.

다음은 문자열 선언입니다 -

char stringname [size];

예를 들어, char string[50]; 길이 50자의 문자열.

초기화

  • 단일 문자 상수 사용
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • 문자열 상수 사용.
char string[10] = “Hello”:;

액세스

'\0'이 나타날 때까지 문자열에 액세스하는 데 사용되는 제어 문자열 "%s"가 있습니다.

문자열 사이의 추가 공백을 제거하는 데 사용한 논리는 다음과 같습니다. -

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("\nNew 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