strchr() फ़ंक्शन
C++ में पूर्वनिर्धारित फ़ंक्शन जो स्ट्रिंग हैंडलिंग के लिए उपयोग होता है। दिए गए स्ट्रिंग में किसी अक्षर की पहली घटना ढूंढता है और उसका पॉइंटर लौटाता है। <cstring> हेडर में परिभाषित।
सिंटैक्स
char* strchr(const char* str, int c)
str: खोज की जाने वाली स्ट्रिंग, c: खोजा जाने वाला अक्षर (int के रूप में पास होता है, char में बदल जाता है)।
उदाहरण 1: पहली घटना ढूंढना
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[] = "strings";
char* c = strchr(str, 's');
cout << "First occurrence of '" << *c
<< "' is at position " << c - str + 1;
return 0;
}
आउटपुट
First occurrence of 's' is at position 1
उदाहरण 2: सफ़िक्स (प्रत्यय) प्रदर्शित करना
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[] = "strings";
char* c = strchr(str, 'i');
cout << "Remaining string after first '" << *c
<< "' is " << c;
return 0;
}
आउटपुट
Remaining string after first 'i' is ings
कोड व्याख्या
उदाहरण 1
str = "strings", 's' खोजता है। पहली घटना इंडेक्स 0 (पोजीशन 1) पर। c - str पॉइंटर अंकगणित से ऑफसेट देता है।
उदाहरण 2
'i' की पहली घटना इंडेक्स 3 पर। c उस पते को इंगित करता है, इसलिए c प्रिंट करने से "ings" आउटपुट होता है।
वेरिएंट: strrchr()
strrchr() अंतिम घटना ढूंढता है (रिवर्स सर्च)।
char* last = strrchr(str, 's'); // "strings" में अंतिम 's' (इंडेक्स 6)
सावधानियां
- यदि अक्षर नहीं मिलता, तो NULL लौटाता है - हमेशा जांचें
- NULL टर्मिनेटर भी खोजा जा सकता है: strchr(str, '\0')
- केस-सेंसिटिव खोज
C++ स्ट्रिंग विकल्प
#include <string>
std::string s = "strings";
size_t pos = s.find('s'); // 0 (नहीं मिला तो npos)
size_t rpos = s.rfind('s'); // 6 (अंतिम घटना)
string suffix = s.substr(pos); // "strings" से सफ़िक्स