strtok() செயல்பாடு எவ்வாறு செயல்படுகிறது?
பயன்படுத்தி ஒரு சரம் பிரிக்க ஸ்ட்ரோக்() , இது எவ்வாறு செயல்படுகிறது என்பதை முதலில் நீங்கள் புரிந்து கொள்ள வேண்டும். தி ஸ்ட்ரோக்() உள்ளீட்டு சரம் எழுத்துக்குறியை ஒரு பிரிப்பான் முழுவதும் வரும் வரை எழுத்தின் அடிப்படையில் படிக்கிறது. ஒரு பிரிப்பான் கண்டுபிடிக்கப்பட்டதும், ஸ்ட்ரோக்() அதை '\0' என்ற பூஜ்ய எழுத்துடன் மாற்றுகிறது, அசல் சரத்தை இரண்டு பகுதிகளாகப் பிரிக்கிறது. சரத்தின் முதல் எழுத்துக்கு ஒரு சுட்டி பின்னர் செயல்பாட்டின் மூலம் திரும்பும். தி ஸ்ட்ரோக்() செயல்பாட்டின் தொடரியல்:
ஸ்ட்ரோக் ( கரி * str , நிலையான கரி * நான் பகிர்கிறேன் ) ;தி ஸ்ட்ரோக்() செயல்பாடு இரண்டு வாதங்களை எடுக்கும்- டோக்கன்களின் தொகுப்பில் முதல் டோக்கனுக்கு ஒரு சுட்டி மற்றும் டிலிமிட்டர் எழுத்துகளை வைத்திருக்கும் ஒரு சரம். இது அடுத்த டோக்கனுக்கு ஒரு சுட்டியைத் தருகிறது, இது கடைசி டோக்கனைப் பிரித்த டிலிமிட்டருக்குப் பிறகு உடனடியாகத் தொடங்குகிறது. மேலும் டோக்கன்கள் இல்லை என்றால் அது NULL ஐ வழங்கும்.
சி புரோகிராமிங்கில் ஸ்ட்ரோக்() மூலம் சரங்களை எவ்வாறு பிரிப்பது?
எப்படி பயன்படுத்துவது என்பதற்கான எடுத்துக்காட்டு இங்கே ஸ்ட்ரோக்() ஒரு சரத்தைப் பிரிக்க:
#
#உள்ளடக்க
முழு எண்ணாக முக்கிய ( ) {
கரி உள்ளீடு [ ] = 'லினக்ஸ், குறிப்பு' ;
கரி * டோக்கன் ;
டோக்கன் = ஸ்ட்ரோக் ( உள்ளீடு , ',' ) ;
போது ( டோக்கன் != ஏதுமில்லை ) {
printf ( '%s \n ' , டோக்கன் ) ;
டோக்கன் = ஸ்ட்ரோக் ( ஏதுமில்லை , ',' ) ;
}
திரும்ப 0 ;
}
மேலே உள்ள எடுத்துக்காட்டில், நாம் முதலில் ஒரு கரிக்கு ஒரு சுட்டியை அறிவிக்கிறோம். பிறகு பயன்படுத்துகிறோம் ஸ்ட்ரோக்() உள்ளீட்டு சரத்தை டோக்கன்களாக பிரிக்க. முதல் அழைப்பு ஸ்ட்ரோக்() இரண்டு வாதங்களை எடுக்கிறது: உள்ளீட்டு சரம் மற்றும் டிலிமிட்டர் சரம் ','. முதல் டோக்கன், 'லினக்ஸ்' அதுதான் ஸ்ட்ரோக்() ஒரு சுட்டியாகத் திரும்புகிறது . உள்ளீடு சரத்தின் மூலம் மீண்டும் மீண்டும் செய்ய, ஒரு வேளை வளையத்தைப் பயன்படுத்துகிறோம் ஸ்ட்ரோக்() மீதமுள்ள டோக்கன்களைப் பிரிப்பதைத் தொடர NULL சுட்டிக்காட்டி. டிலிமிட்டர் சரம் மீண்டும் ஒரு வாதமாக அனுப்பப்பட்டது ஸ்ட்ரோக்() டிலிமிட்டர் எழுத்துக்களைக் குறிக்க.
வெளியீடு
ஸ்ட்ரோக்() செயல்பாட்டின் வரம்புகள்
1: அசல் சரத்தை மாற்றுகிறது
தி ஸ்ட்ரோக்() செயல்பாடு சரத்தின் நகலை வழங்காது; மாறாக, அது அசல் சரத்தை மாற்றியமைக்கிறது. எனவே, சரத்தைப் பிரித்த பிறகு, அதன் மாற்றப்படாத பதிப்பு உங்களிடம் இருக்க வேண்டும் என்றால், அதைத் தொடங்குவதற்கு முன் அசல் சரத்தின் நகலை நீங்கள் உருவாக்க வேண்டும். ஸ்ட்ரோக்() .
2: ஒத்திசைவற்ற
ஒரு குறிப்பிடத்தக்க வரம்பு ஸ்ட்ரோக்() ஒரு நேரத்தில் ஒரு சரத்தில் மட்டுமே பயன்படுத்த முடியும். வேறு வார்த்தைகளில் கூறுவதானால், ஒரே நேரத்தில் பல சரங்களை டோக்கனைஸ் செய்ய இதைப் பயன்படுத்த முடியாது.
3: வரையறுக்கப்பட்ட திறன்
மற்றொரு சாத்தியமான வரம்பு அது ஸ்ட்ரோக்() மீண்டும் மீண்டும் வரம்புகளை கையாளும் திறன் குறைவாக உள்ளது. எடுத்துக்காட்டாக, உங்கள் சரத்தில் சொற்களுக்கு இடையே தொடர்ச்சியான இடைவெளிகள் இருந்தால், ஸ்ட்ரோக்() ஒற்றைப் பிரிப்பாகக் கருதுகிறது. இதுபோன்ற சந்தர்ப்பங்களில், நீங்கள் வேறுபட்ட அணுகுமுறையைப் பயன்படுத்த வேண்டும்.
முடிவுரை
தி ஸ்ட்ரோக்() C நிரலாக்கத்தில் சரங்களைப் பிரிப்பதற்கு செயல்பாடு மிகவும் பயனுள்ள செயல்பாடாகும். இது ஒரு உள்ளீட்டு சரம் மற்றும் ஒரு பிரிப்பான் சரத்தை எடுத்து, உள்ளீட்டு சரத்தில் காணப்படும் முதல் டோக்கனுக்கு ஒரு சுட்டியை வழங்கும். ஸ்ட்ரோக்() அழிவுகரமானது, எனவே அசல் சரத்தின் ஒருமைப்பாட்டை நீங்கள் பாதுகாக்க வேண்டும் என்றால், அதற்கு பதிலாக அதன் நகலை உருவாக்க அறிவுறுத்தப்படுகிறது. இப்போது அதை எப்படி செய்வது என்று உங்களுக்குத் தெரியும், செயலாக்கத்திற்காக எந்த சரத்தையும் சிறிய துண்டுகளாக வெட்டலாம்.