समस्या
व्हाइल लूप की मदद से रनटाइम पर दर्ज स्ट्रिंग से सभी एक्स्ट्रा स्पेस हटाएं, कैरेक्टर के प्रत्येक इंडेक्स पर स्पेस चेक करके।
समाधान
नीचे दिए गए उदाहरण पर विचार करें:
यह दिए गए स्ट्रिंग से सभी स्पेस हटा देता है। दी गई स्ट्रिंग है 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>
#include <string.h>
int main() {
char string[200];
int i, j, len;
printf("स्टेटमेंट दर्ज करें: ");
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("\nएक्स्ट्रा स्पेस हटाने के बाद नई स्ट्रिंग = %s", string);
getch();
return 0;
}
आउटपुट
स्टेटमेंट दर्ज करें: Welcome to The world of C programming एक्स्ट्रा स्पेस हटाने के बाद नई स्ट्रिंग = Welcome to The world of C programming