C++ சரம் ஒரு துணைச்சரத்தைக் கொண்டுள்ளது

C Caram Oru Tunaiccarattaik Kontullatu



C++ இல், எங்களிடம் சரம் தரவு வகை உள்ளது மற்றும் சரங்களைக் கொண்டு பல்வேறு பணிகளைச் செய்ய வெவ்வேறு செயல்பாடுகளைப் பயன்படுத்தலாம். அசல் சரத்திற்குள் சப்ஸ்ட்ரிங் இருக்கிறதா என்பதை நாம் சரிபார்க்கலாம். 'சரத்தில் சப்ஸ்ட்ரிங் உள்ளது' என்றும் சொல்லலாம். இந்த வழிகாட்டியில், 'சரம் சப்ஸ்ட்ரிங் கொண்டுள்ளது' என்பதைக் கண்டறிய உதவும் நுட்பங்களைக் கற்றுக்கொள்வோம். “find()” மற்றும் “strstr()” செயல்பாடுகள் இந்த பணியை C++ நிரலாக்கத்தில் செய்ய நமக்கு உதவுகின்றன.

எடுத்துக்காட்டு 1:

'iostream' மற்றும் 'string' ஆகியவை தலைப்புக் கோப்புகளாகும், ஏனெனில் நாம் சரங்களுடன் வேலை செய்ய வேண்டும், மேலும் தரவை உள்ளிட வேண்டும் அல்லது வெளியிட வேண்டும். எனவே, இந்த தலைப்புக் கோப்புகளை நாம் இங்கே சேர்க்க வேண்டும். இதற்குப் பிறகு, 'பயன்படுத்துதல்' முக்கிய வார்த்தையின் உதவியுடன் 'பெயர்வெளி std' ஐச் சேர்ப்போம். எனவே, இந்த 'std' ஐ அனைத்து செயல்பாடுகளுடன் தனித்தனியாக எங்கள் குறியீட்டில் வைக்க தேவையில்லை. பின்னர், 'முக்கிய()' செயல்பாடு இங்கே செயல்படுத்தப்படுகிறது.







இப்போது, ​​“str_1” சரத்தை அறிவித்து, இந்த மாறிக்கு சில சரம் தரவை ஒதுக்குகிறோம். பின்னர், 'ஸ்ட்ரிங்' தரவு வகையின் 'str_2' என்ற பெயரிடப்பட்ட மற்றொரு மாறியை துவக்கி, இந்த 'str_2' மாறிக்கு 'like' என்பதை ஒதுக்குவோம். இதற்குக் கீழே, உண்மை அல்லது தவறான முடிவுகளை வழங்க 'பூல்' முக்கிய சொல்லைப் பயன்படுத்துகிறோம். இந்த 'பூல்' தரவு வகையுடன் 'stringHasStr' ஐ துவக்கி, 'find()' செயல்பாட்டைப் பயன்படுத்துகிறோம். இது 'ஸ்ட்ரிங்கில் சப்ஸ்ட்ரிங் உள்ளது' என்று தேடுகிறது. 'str_1' என்பது முழுமையான சரம் மற்றும் 'str_2' என்பது துணைச்சரமாகும்.



இங்கே, இந்த சரத்தில் பொருத்தங்கள் எதுவும் இல்லை என்பதைக் காட்டப் பயன்படுத்தப்படும் “npos” முக்கிய சொல்லையும் சேர்த்துள்ளோம். இது சரத்தில் சப்ஸ்ட்ரிங் உள்ளதா என்பதைச் சரிபார்த்து, முடிவை இந்த 'stringHasStr' பூல் மாறியில் சேமிக்கிறது.



பின்னர், நாம் 'if' நிலையை நோக்கி நகர்ந்து, இந்த 'stringHasStr' மாறியை இந்த 'if' நிலைக்கு அனுப்புவோம். இந்த பூல் மாறியில் சேமிக்கப்படும் முடிவு 'உண்மை' எனில், இந்த 'if' நிபந்தனைக்குப் பின் வரும் அறிக்கை, 'cout' ஐப் பயன்படுத்தி, இங்கே காணப்படும் சரத்தைக் காண்பிக்கும். ஆனால் 'தவறான' முடிவு இந்த பூல் மாறியில் சேமிக்கப்பட்டால், மற்ற பகுதி பயன்படுத்தப்பட்டு, சரம் இங்கே காணப்படவில்லை என்பதைக் காட்டுகிறது.





குறியீடு 1:

# அடங்கும்
# அடங்கும்

பெயர்வெளி std ஐப் பயன்படுத்துதல்;
முழு எண்ணாக ( )
{
சரம் str_1 = 'எனக்கு C++ நிரலாக்க மொழி பிடிக்கும்' ;
சரம் str_2 = 'போன்ற' ;
bool stringHasStr = str_1.find ( str_2 ) ! = சரம் ::npos;
என்றால் ( stringHasStr ) {
கூட் << 'நாம் இங்கே சரத்தைக் காண்கிறோம்' << str_2 << endl;
}
வேறு {
கூட் << 'சரம் கிடைக்கவில்லை' << endl;
}
திரும்ப 0 ;
}



வெளியீடு:

இந்த கொடுக்கப்பட்ட வெளியீடு சரத்தில் சப்ஸ்ட்ரிங் உள்ளது மற்றும் அதை இங்கே காண்பிக்கும். “find()” செயல்பாட்டைப் பயன்படுத்தி இதைச் சரிபார்க்கிறோம்.

எடுத்துக்காட்டு 2:

'iostream', 'string' மற்றும் 'cstring' ஆகிய மூன்று தலைப்புக் கோப்புகளை இங்கே சேர்த்துள்ளோம். பின்னர், 'பெயர்வெளி std' ஐ வைத்த பிறகு 'main()' ஐ அழைக்கவும். 'new_str' சரம் இப்போது அறிவிக்கப்பட்டது மற்றும் சில சரம் தரவு ஒதுக்கப்பட்டுள்ளது.

அடுத்து, 'sub_str' எனப்படும் 'ஸ்ட்ரிங்' தரவு வகையின் இரண்டாவது மாறியை துவக்கி அதற்கு 'மிகவும்' மதிப்பைக் கொடுக்கிறோம். பின்னர், 'கான்ஸ்ட் சார்*' வைக்கிறோம். எனவே, நினைவகத்தில் உள்ள மற்ற இடத்திற்குச் சுட்டியின் மதிப்பை மாற்றுவது சாத்தியமற்றது. 'FindingStr' மாறியை இந்த 'const char*' சுட்டியாக இங்கே அறிவிக்கிறோம். அதை “strstr()” முறையில் துவக்கி, இரண்டு சரங்களையும் “c_str()” செயல்பாட்டுடன் அனுப்புகிறோம், இது சரத்தை பூஜ்ய மதிப்புடன் முடிவடையும் எழுத்து வரிசையாக மாற்றும். இந்த 'strstr()' முறையானது 'new_str' சரத்தில் 'sub_str' சப்ஸ்ட்ரிங் உள்ளதா இல்லையா என்பதைச் சரிபார்க்க உதவுகிறது. பின்னர், எங்களிடம் 'if' உள்ளது, அதில் 'FindingStr' ஐ சேர்க்கிறோம். அசலில் துணைச்சரத்தைக் கண்டால், 'cout'ஐப் பயன்படுத்தும் இடத்தில் 'if'க்குப் பின் வரும் அறிக்கை செயல்படுத்தப்படும். சப்ஸ்ட்ரிங் கிடைக்கவில்லை என்றால், அது நேரடியாக 'வேறு' பகுதியை நோக்கி நகர்ந்து, 'வேறு' பகுதிக்குப் பிறகு வைக்கப்படும் முடிவை அச்சிடுகிறது.

குறியீடு 2:

# அடங்கும்
# அடங்கும்
# அடங்கும்

பெயர்வெளி std ஐப் பயன்படுத்துதல்;
முழு எண்ணாக ( )
{
சரம் new_str = 'வெளியில் மழை பெய்கிறது மற்றும் வானிலை மிகவும் இனிமையானது.' ;
சரம் sub_str = 'மிகவும்' ;
கான்ஸ்ட் சார் * FindingStr = strstr ( புதிய_str.c_str ( ) , sub_str.c_str ( ) ) ;
என்றால் ( FindingStr ) {
கூட் << 'நாங்கள் சரத்தை கண்டுபிடித்தோம் மற்றும் சரம்: ' << sub_str << endl;
}
வேறு {
கூட் << 'சரம் கிடைக்கவில்லை' << endl;
}
திரும்ப 0 ;
}

வெளியீடு:

கொடுக்கப்பட்ட சரத்தில் சப்ஸ்ட்ரிங் இருப்பதை நாம் கவனிக்கலாம், ஏனெனில் அது 'if' க்குப் பிறகு நாம் சேர்த்த அறிக்கையைக் காண்பிக்கும் மற்றும் துணைச்சரத்தை இங்கே அச்சிடுகிறது. “strstr()” செயல்பாட்டைப் பயன்படுத்தி இதைச் சரிபார்க்கிறோம்.

எடுத்துக்காட்டு 3:

இரண்டு சரம் மாறிகளை இங்கே துவக்குகிறோம்: 'myNewStr' மற்றும் 'mySubStr'. பின்னர், நாங்கள் சில சரம் தரவை ஒதுக்கி, இரண்டு முழு எண் மாறிகளை அறிவிக்கிறோம்: 'posOfStr' மற்றும் 'indexOfStr'.

இதற்குக் கீழே, “while()” லூப்பைப் பயன்படுத்தி, இந்த “while()” லூப்பில் உள்ள “indexOfStr” மாறிக்கு “find()” சார்பு மாறியை ஒதுக்குகிறோம். இந்த “find()” செயல்பாட்டிற்கு “mySubStr” மற்றும் “posOfStr” ஆகிய இரண்டு மாறிகளை அனுப்புகிறோம். பின்னர், 'npos' முக்கிய சொல்லை வைக்கிறோம், இது 'find' செயல்பாட்டின் முடிவு 'npos' க்கு சமமாக இல்லை என்பதை சரிபார்க்கிறது. இதற்குப் பிறகு, 'cout' ஐப் பயன்படுத்துகிறோம், இது குறியீட்டு மதிப்பை ஒன்றின் மூலம் அதிகரிக்கிறது மற்றும் அதை 'posOfStr' மாறியில் சேமிக்கிறது.

குறியீடு 3:

# அடங்கும்
# அடங்கும்

பெயர்வெளி std ஐப் பயன்படுத்துதல்;
முழு எண்ணாக ( ) {
சரம் myNewStr = 'நாங்கள் இங்கே சரத்தை கண்டுபிடித்துள்ளோம்' ;
சரம் mySubStr = 'லேசான கயிறு' ;
int posOfStr = 0 ;
int indexOfStr;
போது ( ( indexOfStr = myNewStr.find ( mySubStr, posOfStr ) ) ! = சரம் ::npos ) {
கூட் << 'துணைச்சரம்' << ''' << mySubStr << ''' << 'குறியீட்டு எண்ணில் காணப்படுகிறது :' << indexOfStr << endl;
posOfStr = indexOfStr + 1 ;
}
திரும்ப 0 ;
}

வெளியீடு:

இங்கே, கொடுக்கப்பட்ட சரத்தில் சப்ஸ்ட்ரிங் இருப்பதையும், இந்த சரத்தின் குறியீட்டு எண் “19” என்பதும் இந்த முடிவில் காட்டப்படும்.

எடுத்துக்காட்டு 4:

இந்தக் குறியீட்டில், “bits/stdc++.h” தலைப்புக் கோப்பைச் சேர்க்கிறோம். இப்போது, ​​தேவையான அனைத்து லைப்ரரிகளையும் கொண்டிருப்பதால் மற்ற தலைப்புக் கோப்புகளை நாம் சேர்க்க வேண்டியதில்லை. “main()” ஐ செயல்படுத்திய பிறகு, “string” தரவு வகையின் “org_str” மற்றும் “sub_str” மாறிகளை துவக்குவோம். பின்னர், 'strstr()' செயல்பாட்டைப் பயன்படுத்தும் 'if' நிபந்தனையைச் சேர்ப்போம். கொடுக்கப்பட்ட சரத்தில் விரும்பிய சப்ஸ்ட்ரிங் உள்ளதா என இந்த செயல்பாடு தேடுகிறது. பின்னர், சப்ஸ்ட்ரிங் இங்கே காணப்படுவதை அச்சிட, “கவுட்” அறிக்கையைச் சேர்க்கிறோம். பின்னர், 'if' நிபந்தனை திருப்தியடையாதபோது அல்லது சரத்தில் சப்ஸ்ட்ரிங் காணப்படாதபோது மட்டுமே செயல்படுத்தப்படும் 'else' பகுதியையும் வைக்கிறோம்.

இதற்குப் பிறகு, “sub_str2” மாறியை அறிவித்து, சரம் தரவை இங்கே ஒதுக்குவோம். 'if' நிபந்தனை பின்னர் செருகப்பட்டு, 'strstr()' செயல்பாடு பயன்படுத்தப்படுகிறது. வழங்கப்பட்ட சரத்தில் கோரப்பட்ட சப்ஸ்ட்ரிங் உள்ளதா இல்லையா என்பதை இந்த முறை தேடுகிறது. முடிவு இங்கே “cout” கட்டளையைப் பயன்படுத்தி அச்சிடப்படும். 'if' நிபந்தனை பூர்த்தி செய்யப்படாவிட்டாலோ அல்லது சரத்தில் துணைச்சரத்தை அமைக்க முடியாமலோ மட்டுமே இயக்கப்படும் 'else' பகுதியையும் சேர்த்துக் கொள்கிறோம்.

குறியீடு 4:

# அடங்கும்
பெயர்வெளி std ஐப் பயன்படுத்துதல்;
முழு எண்ணாக ( ) {
சரம் org_str = 'சி++ நிரலாக்க மொழி' ;
சரம் sub_str = 'நிரல்' ;
என்றால் ( strstr ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
கூட் << 'இங்குள்ள சப்ஸ்ட்ரிங்' << ''' << sub_str << ''' << 'இதில் உள்ளது' << org_str << endl;
}
வேறு {
கூட் << 'சப்ஸ்ட்ரிங் சரத்தில் இல்லை.' << endl;
}
சரம் sub_str2 = 'ஜாவா' ;

என்றால் ( strstr ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
கூட் << 'இங்குள்ள சப்ஸ்ட்ரிங்' << ''' << sub_str2 << ''' << 'இதில் உள்ளது' << org_str << endl;
}
வேறு {
கூட் << 'இந்த சரத்தில் சப்ஸ்ட்ரிங் இல்லை.' << endl;
}
திரும்ப 0 ;
}

வெளியீடு:

முதல் “strstr()” செயல்பாட்டின் முடிவு சரத்தில் சப்ஸ்ட்ரிங் உள்ளது என்பதைக் காட்டுகிறது, ஆனால் இரண்டாவது “strstr()” செயல்பாட்டின் முடிவு சரத்தில் சப்ஸ்ட்ரிங் இல்லை என்பதைக் காட்டுகிறது.

முடிவுரை

இந்த வழிகாட்டியில் 'சரத்தில் சப்ஸ்ட்ரிங் உள்ளது' என்ற கருத்து முழுமையாக ஆராயப்படுகிறது. 'சரத்தில் சப்ஸ்ட்ரிங் உள்ளதா' என்பதைத் தேடுவதற்கு உதவும் இரண்டு முறைகளை நாங்கள் ஆராய்ந்தோம். இந்தப் பணியைச் செய்வதற்கு இந்த வழிகாட்டியில் C++ வழங்கும் “find()” மற்றும் “strstr()” செயல்பாடுகளை விளக்கினோம். 'சரத்தில் சப்ஸ்ட்ரிங் உள்ளதா' என்பதைச் சரிபார்க்க, இந்த செயல்பாடுகளை எவ்வாறு பயன்படுத்துவது என்பதை நாங்கள் கற்றுக்கொண்ட தனித்துவமான எடுத்துக்காட்டுகளுடன் நாங்கள் நிரூபிக்கிறோம்.