ปัญหา
ลบช่องว่างทั้งหมดออกจากสตริงที่ป้อนขณะรันไทม์โดยใช้ while loop โดยตรวจสอบช่องว่างที่ดัชนีแต่ละตัวของอักขระ
วิธีแก้ปัญหา
ลองพิจารณาตัวอย่างด้านล่าง −
จะลบช่องว่างทั้งหมดออกจากสตริงที่กำหนด สตริงที่กำหนดคือ Tutorials Point C Programming . ผลลัพธ์หลังจากลบช่องว่างคือ TutorialsPointCProgramming .
อาร์เรย์ของอักขระเรียกว่าสตริง
ด้านล่างนี้คือ การประกาศ ของสตริง −
char stringname [size];
ตัวอย่างเช่น สตริงอักขระ[50]; สตริงที่มีความยาว 50 ตัวอักษร
การเริ่มต้น
- การใช้ค่าคงที่อักขระตัวเดียว
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
- การใช้ค่าคงที่สตริง
char string[10] = “Hello”:;
การเข้าถึง
มีสตริงควบคุม “%s” ที่ใช้สำหรับเข้าถึงสตริงจนกว่าจะพบ '\0'
ตรรกะที่เราใช้ในการลบช่องว่างระหว่างสตริงมีดังนี้ -
while(string[i]!='\0'){ check=0; if(string[i]==' '){ j=i; while(string[j-1]!='\0'){ string[j] = string[j+1]; j++; } check = 1; } if(check==0) i++; }
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อลบช่องว่างทั้งหมดในประโยคโดยใช้แนวคิดสตริง -
#include<stdio.h> int main() { char string[50]; int i=0, j, check; printf("Enter any statement: "); gets(string); while(string[i]!='\0') { check=0; if(string[i]==' ') { j=i; while(string[j-1]!='\0') { string[j] = string[j+1]; j++; } check = 1; } if(check==0) i++; } printf("\nSentence without spaces: %s", string); getch(); return 0; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Run 1: Enter any statement: Tutorials Point C Programming Sentence without spaces: TutorialsPointCProgramming Run 2: Enter any statement: Welcome to the world of tutorials Sentence without spaces: Welcometotheworldoftutorials