समस्या
किसी वर्ण की प्रत्येक अनुक्रमणिका में रिक्त स्थान की जाँच करके लूप की मदद से रनटाइम पर एक दर्ज स्ट्रिंग से सभी रिक्त स्थान निकालें।
समाधान
नीचे दिए गए एक उदाहरण पर विचार करें -
यह किसी दिए गए स्ट्रिंग से सभी रिक्त स्थान हटा देता है। दी गई स्ट्रिंग है ट्यूटोरियल प्वाइंट सी प्रोग्रामिंग . रिक्त स्थान हटाने के बाद परिणाम ट्यूटोरियल्सप्वाइंटसीप्रोग्रामिंग . है ।
वर्णों की एक सरणी को स्ट्रिंग कहा जाता है।
नीचे दिया गया घोषणा है एक स्ट्रिंग का -
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++; }
उदाहरण
स्ट्रिंग अवधारणाओं का उपयोग करके वाक्य में सभी रिक्त स्थान को हटाने के लिए सी प्रोग्राम निम्नलिखित है -
#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