String in C in Hindi C में स्ट्रिंग क्या है?

“String in C in Hindi ” Hello दोस्तों! आज इस पोस्ट में आपको “Parameter Passing in C++ in Hindi”को पढ़ेंगे , इस पोस्ट को आप पूरा पढ़िए. इस article  को बहुत ही आसान और सरल भाषा में लिखा गया है. यह article  आपके exam के लिए बहुत उपयोगी साबित होगी. जो छात्र परीक्षा की तैयारी रहे हैं वो सभी इस article  की मदद से आप सभी आसानी से हिंदी भाषा में सीख सकते हैं | 

String in C in Hindi C में स्ट्रिंग क्या है?

String in C in Hindi C में स्ट्रिंग क्या है?

String in C in Hindi  C में स्ट्रिंग क्या है?
String in C in Hindi C में स्ट्रिंग क्या है?

जब हम किसी भी प्रोग्राम या सॉफ्टवेयर को बनाते हैं, तो उसमें डाटा के साथ काम करने की जरूरत पड़ती है। डाटा का प्रकार विभिन्न हो सकता है, और इसमें अक्सर मैंन विभाजित किया जाता है। एक तरह का डाटा जो हर प्रोग्राम में बहुत आम है, वह है ‘स्ट्रिंग’। इस लेख में, हम सीखेंगे कि C में स्ट्रिंग्स क्या हैं और इनका उपयोग कैसे किया जा सकता है।

Understanding Strings

2.1 What are Data Types?

सबसे पहले, हमें यह समझना है कि ‘डाटा टाइप्स’ क्या होते हैं। जब हम किसी प्रोग्राम में किसी भी डाटा को या मानक फार्मैट में रखना चाहते हैं, तो हमें उस डाटा के टाइप को तय करना पड़ता है। C में कुछ मुख्य डेटा टाइप्स हैं जिनमें int, float, char आदि शामिल हैं। स्ट्रिंग भी एक डाटा टाइप होता है जो किसी भी पाठ या टेक्स्ट को रखता है।

2.2 Basics of Strings

स्ट्रिंग एक सिक्वेंस या श्रृंखला होती है जो एक या एक से अधिक वर्णों का समूह होता है। इन वर्णों को हम चार (char) डेटा टाइप के चिह्नों के रूप में प्रदर्शित करते हैं। जैसे कि “Hello” एक स्ट्रिंग है जिसमें पांच वर्ण हैं – ‘H’, ‘e’, ‘l’, ‘l’, ‘o’।

2.3 String Declaration and Initialization

स्ट्रिंग को डिक्लेयर और इनिशियलाइज़ करने के लिए हम चार (char) डेटा टाइप के एक एरे का उपयोग करते हैं। जैसे

char myString[10];
यहां, myString एक चार एरे है जो 10 वर्णों को रख सकता है। इसका उपयोग इस तरह से किया जा सकता है |
char myString[10] = “Hello”;
इसमें “Hello” स्ट्रिंग के पहले 5 वर्ण myString एरे में स्टोर होंगे और बाकी जगह खाली रहेगी।

String Operations

3.1 Concatenation of Strings

स्ट्रिंग कंकटनेशन एक महत्वपूर्ण ऑपरेशन है जिसमें हम दो स्ट्रिंग्स को एक-दूसरे से जोड़ते हैं। यहां एक उदाहरण है |

#include <stdio.h>
#include <string.h>
int main()
{

// Declare and initialize the first name and last name character arrays
char firstName[20] = “John”;
char lastName[20] = “Doe”;

// Declare a character array to store the full name
char fullName[40];

// Copy the first name to the full name array
strcpy(fullName, firstName);

// Concatenate a space to separate the first name and last name
strcat(fullName, ” “);

// Concatenate the last name to the full name
strcat(fullName, lastName);

// Print the full name
printf(“Full Name: %s\n”, fullName);
return 0;
}
यहां, strcpy() फ़ंक्शन firstName स्ट्रिंग को fullName में कॉपी करता है और strcat() फ़ंक्शन से हम उसमें एक स्पेस और lastName स्ट्रिंग को जोड़ते हैं।

Output

Full Name: John Doe

3.2 Finding the Length of a String

स्ट्रिंग की लम्बाई पाने के लिए हम strlen() फ़ंक्शन का उपयोग करते हैं। यह फ़ंक्शन वर्ग से इनपुट स्ट्रिंग के वर्णों की संख्या वापस देता है। उदाहरण-

#include <stdio.h>
#include <string.h>
int main()
{
// Declare and initialize the character array
char myString[30] = “Hello, how are you?”;

// Use strlen function to find the length of the string

int length = strlen(myString);

// Print the length of the string

printf(“Length of the string: %d\n”, length);
return 0;
}

Output

Length of the string: 19

3.3 Accessing Individual Characters

स्ट्रिंग के वर्णों को एक्सेस करने के लिए हम वर्ग के इंडेक्स का उपयोग करते हैं। वर्ग के इंडेक्स 0 से शुरू होते हैं। उदाहरण-

#include <stdio.h>
#include <string.h>
int main() {
// Declare and initialize the character array
char myString[20] = “Hello”;
// Access the first character of the string using array indexing char
firstChar = myString[0];

// Access the last character of the string using array indexing
// In C/C++, arrays are zero-indexed, so the last character is at index 4

char lastChar = myString[4];

// Print the first and last characters

printf("First character: %c\n", firstChar);
printf("Last character: %c\n", lastChar);
return 0;
}

Output

First character: H
Last character: o

3.4 Modifying Strings

स्ट्रिंग को मॉडिफ़ाई करने के लिए हम इसके वर्ग को सीधे एक्सेस करके वर्तमान मान को बदल सकते हैं। उदाहरण-

#include <stdio.h>
#include <string.h>
int main()
{

// Declare and initialize the character array
char myString[20] = “Hello”;
// Modify the first character of the string by assigning 'J' to

myString[0] myString[0] = 'J';

// Print the modified string

printf("Modified String: %s\n", myString);

return 0;
}

Output

Modified String: Jello

String Input and Output

4.1 Inputting a String

स्ट्रिंग को इनपुट करने के लिए हम scanf() फ़ंक्शन का उपयोग करते हैं। यह फ़ंक्शन स्ट्रिंग के पहले वर्ण से शुरू होकर पहले वर्ण नहीं मिल जाने तक के वर्णों को इनपुट करता है। उदाहरण:

#include <stdio.h>
#include <string.h>
int main() {
// Declare a character array to store the name
char name[50];
// Prompt the user to enter their name

printf("Enter your name: ");

// Read the input from the user and store it in the 'name' array
// Note: Be cautious when using 'scanf' with %s, as it doesn't handle spaces well.
// It will only read characters until the first space encountered.

scanf("%s", name);

// Print the entered name

printf("Your name is: %s\n", name);
return 0;
}

Output

Enter your name: John Smith
Your name is: John Smith

4.2 Outputting a String

स्ट्रिंग को आउटपुट करने के लिए हम printf() फ़ंक्शन का उपयोग करते हैं। इसमें हम %s फॉर्मैट स्पेसिफायर का उपयोग करते हैं। उदाहरण

include
int main() {
char name[50] = “Alice”;
printf(“Hello, %s!”, name);
return 0;
}

Output

Hello, Alice!

String Functions

5.1 strcmp() Function

strcmp() फ़ंक्शन का उपयोग दो स्ट्रिंग्स की तुलना करने के लिए किया जाता है। यह दो स्ट्रिंग्स को तुलना करता है और उनके बीच में कोई भी अंतर देखता है। यदि दोनों स्ट्रिंग्स बराबर हैं तो 0 रिटर्न करता है, और यदि वे अलग हैं तो एक पॉज़िटिव या नेगेटिव अंतर रिटर्न करता है। उदाहरण-

#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = “Hello”;
char str2[20] = “Hello”;
// Compare the two strings using the strcmp function
if (strcmp(str1, str2) == 0)
{
printf("Both strings are equal.");
}
else
{
printf("Strings are not equal.");
}
return 0;
}

Output

Both strings are equal.

5.2 strcpy() Function

strcpy() फ़ंक्शन का उपयोग एक स्ट्रिंग की दूसरी स्ट्रिंग में कॉपी करने के लिए किया जाता है। उदाहरण-

#include <stdio.h>
#include <string.h>
int main() {
char source[20] = “Hello”;
char destination[20];
// Copy the content of the source string into the destination string strcpy(destination, source); // Now, destination contains "Hello" return 0;
}

Output

Destination: Hello

5.3 strcat() Function

strcat() फ़ंक्शन का उपयोग दो स्ट्रिंग्स को जोड़ने के लिए किया जाता है। यह पहली स्ट्रिंग के अंत में दूसरी स्ट्रिंग को जोड़ता है। उदाहरण-

#include <stdio.h>
#include <string.h>

int main()
{
char str1[20] = “Hello”;
char str2[20] = ” world!”;
// Concatenate str2 to str1

strcat(str1, str2);

// Now, str1 contains "Hello world!"
// Print the concatenated string

printf("Concatenated string: %s\n", str1);
return 0;
}

Output

Concatenated string: Hello world!

5.4 strlen() Function

strlen() फ़ंक्शन का उपयोग स्ट्रिंग की लम्बाई पाने के लिए किया जाता है। यह इनपुट स्ट्रिंग के वर्णों की संख्या वापस देता है। उदाहरण-

#include <stdio.h>
#include <string.h>

int main()
{
char myString[30] = “Hello, how are you?”;

// Calculate the length of the string

int length = strlen(myString);

// Print the length of the string

printf("Length of the string: %d\n", length);
return 0;
}

Output

Length of the string: 19

String Manipulation

6.1 Changing Case

स्ट्रिंग के वर्णों के मामूली रूप से अपरकेस (बड़े अक्षर) और लोवरकेस (छोटे अक्षर) में परिवर्तन के लिए हम toupper() और tolower() फ़ंक्शन का उपयोग करते हैं। उदाहरण-

#include <stdio.h>
#include <ctype.h>


int main()
{
char myString[20] = “Hello”;

for (int i = 0; myString[i]; i++)
{
myString[i] = toupper(myString[i]);
}
// Print the modified string
printf("Modified String: \"%s\"\n", myString);
// Output: "Modified String: "HELLO""

return 0;
}

Output

Modified String: “HELLO”

6.2 Reversing a String

स्ट्रिंग को उलट देने के लिए हम दो पॉइंटर का उपयोग करते हैं। एक पॉइंटर स्ट्रिंग के आखिरी वर्ण को और दूसरा पॉइंटर स्ट्रिंग के पहले वर्ण को देखता है। उदाहरण-

#include <stdio.h>
#include <string.h>

int main()
{
char myString[20] = “Hello”;
char *start = myString;
char *end = myString + strlen(myString) – 1;
while (start < end)
{
char temp = *start;
*start = *end;
*end = temp;
start++; end--;

}
// Print the reversed string
printf("Reversed String: \"%s\"\n", myString); // Output: "Reversed String: "olleH""

return 0;
}

Output

Reversed String: “olleH”

6.3 Trimming Whitespaces

स्ट्रिंग के आगे और पीछे के सभी खाली स्थानों को हटाने के लिए हम व्हाइल लूप का उपयोग करते हैं। उदाहरण-

#include <stdio.h>
#include <string.h>

int main()
{
char myString[30] = ” Hello, how are you? “;
char *start = myString;
char *end = myString + strlen(myString) – 1;
// Remove leading spaces while (*start == ' ')
{
start++; }
// Remove trailing spaces

while (*end == ' ')
{
end--;
}
end[1] = '\0'; // Set null-terminator to remove extra spaces // Print the modified string

printf("Modified String: \"%s\"\n", myString); // Output: "Modified String: "Hello, how are you?""

return 0;
}

Output

Modified String: “Hello, how are you?”

6.4 Finding Substrings

स्ट्रिंग में किसी सबस्ट्रिंग का पता लगाने के लिए हम strstr() फ़ंक्शन का उपयोग करते हैं। यह वर्ग को उस स्थान पर पहुंचाता है जहां सबस्ट्रिंग पहली बार मिलती है। उदाहरण-

#include <stdio.h>
#include <string.h>

int main() {
char myString[50] = “Hello, how are you?”;
char substring[10] = “how”;
char *result = strstr(myString, substring);

if (result != NULL)
{
printf("Substring found at index: %d\n", result - myString); // Output: Substring found at index: 7

}

else
{
printf("Substring not found.\n");
}
return 0;
}

Output

Substring found at index: 7

String Conversion

7.1 Converting String to Integer

स्ट्रिंग को इंटीजर में कनवर्ट करने के लिए हम atoi() या strtol() फ़ंक्शन का उपयोग करते हैं। उदाहरण-

#include <stdio.h>
#include <stdlib.h>

int main() {
char numString[10] = “12345”;
int number = atoi(numString);
// Print the converted integer
printf("Integer Value: %d\n", number);
return 0;
}

Output

Integer Value: 12345

7.2 Converting String to Float

स्ट्रिंग को फ़्लोट में कनवर्ट करने के लिए हम atof() या strtod() फ़ंक्शन का उपयोग करते हैं। उदाहरण-

#include <stdio.h>
#include <stdlib.h>
int main()
{
char floatString[10] = “3.14”;
float number = atof(floatString);

// Print the converted float
printf("Float Value: %f\n", number);

return 0;
}

Output

Float Value: 3.140000

7.3 Converting Integer to String

इंटीजर को स्ट्रिंग में कनवर्ट करने के लिए हम sprintf() या itoa() फ़ंक्शन का उपयोग करते हैं। उदाहरण-

#include <stdio.h>

int main() {
int number = 42;
char numString[10];

// Convert the integer to a string
sprintf(numString, "%d", number);

// Print the string

printf("Integer as String: %s\n", numString);

return 0;
}

Output

Integer as String: 42

7.4 Converting Float to String

फ़्लोट को स्ट्रिंग में कनवर्ट करने के लिए हम sprintf() या gcvt() फ़ंक्शन का उपयोग करते हैं। उदाहरण-

#include <stdio.h>

int main()
{
float number = 3.14;
char floatString[10];
// Convert the float to a string

sprintf(floatString, "%.2f", number);

// Print the string
printf("Float as String: %s\n", floatString);

return 0;
}

Output

Float as String: 3.14

Common Mistakes with Strings

8.1 Null-Terminator Issues

स्ट्रिंग्स को सही ढंग से निर्माण करने में एक सामान्य गलती है नल-टर्मिनेटर (null-terminator) का अभाव। नल-टर्मिनेटर एक विशेष चर है जो स्ट्रिंग के अंत में होता है और स्ट्रिंग को पूर्ण बनाता है। बिना नल-टर्मिनेटर के, स्ट्रिंग को ठीक से प्रिंट करने और ऑपरेशन्स करने में समस्या हो सकती है। सुनिश्चित करें कि स्ट्रिंग के अंत में नल-टर्मिनेटर शामिल होता है-

#include <stdio.h>

int main() {
char myString[20] = “Hello”;

// Null-terminate the string

myString[5] = '\0';
// Print the modified string
printf("Modified String: %s\n", myString);
return 0;
}

Output

Modified String: Hello

8.2 Buffer Overflow

स्ट्रिंग्स के लिए अलोकेट किए गए आरे में स्ट्रिंग लम्बाई से अधिक हो जाने पर बफ़र ओवरफ़्लो (Buffer Overflow) का सामना किया जा सकता है। यह एक बेहद खतरनाक सुरक्षा गड़बड़ी है जो प्रोग्राम को बिगाड़ सकती है। सुनिश्चित करें कि स्ट्रिंग्स के लिए पर्याप्त स्थान अलोकेट किया जाए-

#include <stdio.h>

int main()
{
char myString[10] = “Hello, how are you?”;
// Print the string
printf("myString: %s\n", myString);
return 0;
}

Output

Hello, how are you?

8.3 Incorrect String Comparisons

स्ट्रिंग्स को तुलना करते समय == ऑपरेटर का उपयोग न करें, बल्कि strcmp() फ़ंक्शन का उपयोग करें। यह स्ट्रिंग्स को सही ढंग से तुलना करेगा और सही परिणाम देगा-

#include <stdio.h>
#include <string.h>

int main()
{
char str1[10] = “Hello”;
char str2[10] = “Hello”;
// Incorrect way (using == for string comparison)

if (str1 == str2)
{
printf("Strings are equal.");
}
else
{
printf("Strings are not equal.");
}
// Correct way (using strcmp for string comparison)

if (strcmp(str1, str2) == 0)
{
printf("Strings are equal.");
}
else
{
printf("Strings are not equal.");
}
return 0;
}

Output

Strings are not equal.
Strings are equal.

Advanced String Handling

8.4 Wide Characters (wchar_t)

वाइड चैरेक्टर्स (wchar_t) एक विशेष डेटा टाइप है जो 2 बाइट्स या अधिक के वर्णों को प्रदर्शित करता है। इसका उपयोग विभिन्न भाषाओं में टेक्स्ट को समर्थित करने के लिए किया जाता है। यदि आप विभिन्न भाषाओं में टेक्स्ट प्रोग्राम में प्रदर्शित करना चाहते हैं, तो wchar_t का उपयोग करें |

#include <stdio.h>
#include <string.h>

int main()
{
wchar_t myString[20] = L”नमस्ते”;
// Print the wide character string
wprintf(L"%ls\n", myString);
return 0;
}

Output

नमस्ते

8.5 Unicode and UTF-8

स्ट्रिंग में विशेष वर्णों को प्रदर्शित करने के लिए यूनिकोड (Unicode) और UTF-8 इंकोडिंग का उपयोग किया जाता है। यूनिकोड एक विशेष स्टैंडर्ड है जो सभी भाषाओं के वर्णों को एकीकृत करता है, जो कि टेक्स्ट को प्रदर्शित करने के लिए बेहद उपयुक्त होता है। UTF-8 एक इंकोडिंग है जो यूनिकोड के वर्णों को बाइट्स में प्रदर्शित करता है।

8.6 String Tokenization

स्ट्रिंग टोकनाइज़ेशन एक प्रक्रिया है जिसमें हम एक स्ट्रिंग को टोकन (अलग-अलग टुकड़ों) में विभाजित करते हैं। इसका उपयोग बड़े और विशाल स्ट्रिंग को छोटे-छोटे भागों में विभाजित करने के लिए किया जाता है। strtok() फ़ंक्शन का उपयोग स्ट्रिंग टोकनाइज़ेशन करने के लिए किया जाता है। उदाहरण |

#include <stdio.h>
#include <string.h>
int main()
{
char myString[50] = “apple,banana,grape”;
char *token = strtok(myString, “,”);
while (token != NULL)
{
printf("%s\n", token);
token = strtok(NULL, ",");
}
return 0;
}

Output

apple
banana
grape

Use Cases of Strings in C

8.7 Input Validation

स्ट्रिंग्स का उपयोग इनपुट वैलिडेशन में किया जाता है, जिससे हम उपयोगकर्ता से सही प्रकार के डाटा का इनपुट ले सकते हैं। उदाहरण के लिए, यदि हमें एक पासवर्ड इनपुट करवाना है, तो हम सुनिश्चित कर सकते हैं कि वह कम से कम निश्चित अक्षरों की लंबाई का है।

8.8 Text Processing

पाठ प्रोसेसिंग में स्ट्रिंग्स का बड़ा महत्व होता है। पाठ प्रोसेसिंग शामिल कर सकता है विभिन्न स्ट्रिंग ऑपरेशन्स, सबस्ट्रिंग खोजने, विभाजन और संशोधन। स्ट्रिंग्स का उपयोग वेब पेजों के लिए एसईओ अनुकूलित और वेबसाइट डेवलपमेंट में भी किया जाता है।

you might also like……..सी मे डेटा टाइप क्या है – What is data type in hindi ?

Conclusion

संक्षेप में कहें तो, सी भाषा में स्ट्रिंग्स एक महत्वपूर्ण और प्रभावशाली डेटा टाइप हैं। ये अक्षरों की तारीख, विभाजन, खोज और बदलाव करने के लिए उपयोग होते हैं। सी में स्ट्रिंग्स के साथ सही ढंग से काम करने से प्रोग्राम एक्सीक्यूट होने में सरलता होती है और बग्स की संख्या कम होती है। तो अब आपको समझ में आ गया होगा कि सी में स्ट्रिंग्स क्या हैं और उन्हें कैसे उपयोग करना है। आइए, अब आप भी सी में स्ट्रिंग्स के साथ अपनी प्रोग्रामिंग कौशल को निखारें और बेहतर प्रोग्राम्स बनाएं।

FAQs

1. सी में क्या आप स्ट्रिंग्स को बिल्कुल नहीं बदल सकते?

नहीं, सी में स्ट्रिंग्स को बिल्कुल नहीं बदला जा सकता है। सी में स्ट्रिंग्स इम्यूटेबल (Immutable) होती हैं, जिसका मतलब है कि एक बार बना लिया गया स्ट्रिंग पूर्णतः बदला नहीं जा सकता है। हालांकि, हम स्ट्रिंग्स को छोटे-छोटे टुकड़ों में विभाजित करके उन्हें संशोधित कर सकते हैं।

2. सी में स्ट्रिंग्स की लम्बाई का निर्धारण कैसे किया जाता है?

सी में स्ट्रिंग्स की लम्बाई का निर्धारण उस स्ट्रिंग के अंत में पाए जाने वाले null-terminator के आधार पर किया जाता है। स्ट्रिंग के अंत में null-terminator होने के कारण हम उसे एक valid स्ट्रिंग मानते हैं और इसका मतलब है कि स्ट्रिंग वहां खत्म हो जाती है जहां null-terminator पाया जाता है।

3. सी में स्ट्रिंग्स का उपयोग कहां किया जाता है?

सी में स्ट्रिंग्स का उपयोग विभिन्न प्रकार की टेक्स्ट प्रोसेसिंग के लिए किया जाता है। इसमें विभाजन, खोज, तुलना, परिवर्तन, टोकनाइज़ेशन और बदलाव शामिल हो सकते हैं। यह वेब डेवलपमेंट, स्ट्रिंग प्रोसेसिंग और फ़ाइल पढ़ने और लिखने जैसे बहुत सारे ऐप्लिकेशन्स में उपयोगी होता है।

4. सी में विशेष वर्णों का उपयोग कैसे किया जाता है?

सी में विशेष वर्णों का उपयोग यूनिकोड और UTF-8 इंकोडिंग के साथ किया जाता है। यूनिकोड विशेष वर्णों को 2 बाइट्स या अधिक में प्रदर्शित करता है जो कि सभी भाषाओं के लिए उपयुक्त होता है। UTF-8 एक इंकोडिंग है जो यूनिकोड के वर्णों को बाइट्स में प्रदर्शित करता है। ये विशेष वर्णों को सही ढंग से प्रदर्शित करने में मदद करता है।

Leave a Comment