C ++ இல் சரத்தை பிரிப்பது எப்படி

How Split String C



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

முன்-தேவை

இந்த டுடோரியலின் எடுத்துக்காட்டுகளைச் சரிபார்க்கும் முன், ஜி ++ கம்பைலர் நிறுவப்பட்டதா அல்லது கணினியில் இல்லையா என்பதை நீங்கள் சரிபார்க்க வேண்டும். நீங்கள் விஷுவல் ஸ்டுடியோ குறியீட்டைப் பயன்படுத்துகிறீர்கள் என்றால், இயங்கக்கூடிய குறியீட்டை உருவாக்க C ++ மூலக் குறியீட்டைத் தொகுக்க தேவையான நீட்டிப்புகளை நிறுவவும். இங்கே, விஷுவல் ஸ்டுடியோ கோட் பயன்பாடு சி ++ குறியீட்டைத் தொகுத்து செயல்படுத்த பயன்படுகிறது.







கெட்லைன் () செயல்பாட்டைப் பயன்படுத்தி சரத்தைப் பிரிக்கவும்

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



தொடரியல்:



இஸ்ட்ரீம்&கெட்லைன்(இஸ்ட்ரீம்&என்பது, சரம்&str,கரிடிலிம்);

இங்கே, முதல் அளவுரு, நீரோடை, எழுத்துக்கள் பிரித்தெடுக்கப்படும் பொருள். இரண்டாவது அளவுரு ஒரு சரம் மாறி, அது பிரித்தெடுக்கப்பட்ட மதிப்பைச் சேமிக்கும். சரத்தை பிரித்தெடுப்பதற்குப் பயன்படுத்தப்படும் டிலிமிட்டரை அமைக்க மூன்றாவது அளவுரு பயன்படுத்தப்படுகிறது.





பின்வரும் குறியீட்டைக் கொண்டு C ++ கோப்பை உருவாக்கி, இடத்தைப் பிரிப்பதன் அடிப்படையில் ஒரு சரத்தை பிரித்து பயன்படுத்தவும் கெட்லைன் () செயல்பாடு பல சொற்களின் சரம் மதிப்பு ஒரு மாறிக்கு ஒதுக்கப்பட்டுள்ளது, மேலும் இடைவெளி பிரிப்பானாகப் பயன்படுத்தப்படுகிறது. பிரித்தெடுக்கப்பட்ட வார்த்தைகளை சேமிக்க ஒரு திசையன் மாறி அறிவிக்கப்பட்டுள்ளது. அடுத்து, திசையன் வரிசையில் இருந்து ஒவ்வொரு மதிப்பையும் அச்சிட ‘for’ லூப் பயன்படுத்தப்பட்டுள்ளது.

// தேவையான நூலகங்களைச் சேர்க்கவும்
#சேர்க்கிறது
#சேர்க்கிறது
#சேர்க்கிறது
#சேர்க்கிறது

intமுக்கிய()
{
// பிரிக்கப்படும் சரம் தரவை வரையறுக்கவும்
மணி::லேசான கயிறுstrData= சி ++ நிரலாக்கத்தைக் கற்றுக்கொள்ளுங்கள்;
// டிலிமிட்டராக வேலை செய்யும் கான்டென்ட் தரவை வரையறுக்கவும்
கான்ஸ்ட் கரிபிரிப்பான்= '';
// சரங்களின் மாறும் வரிசை மாறியை வரையறுக்கவும்
மணி::திசையன்வெளியீடு வரிசை;
// சரத்திலிருந்து ஒரு ஸ்ட்ரீமை உருவாக்குங்கள்
மணி::சரம் ஸ்ட்ரீம்ஸ்ட்ரீம் டேட்டா(strData);
/ *
பயன்படுத்தப்படும் ஸ்ட்ரிங் மாறியை அறிவிக்கவும்
பிரித்த பிறகு தரவை சேமிக்க
* /

மணி::லேசான கயிறுமணி;
/ *
லூப் பிளவுபட்ட தரவை மீண்டும் செய்யும்
வரிசையில் தரவைச் செருகவும்
* /

போது (மணி::கெட்லைன்(ஸ்ட்ரீம் டேட்டா, வால், பிரிப்பான்)) {
வெளியீடு வரிசை.பின்னால் தள்ளு(மணி);
}
// பிரிக்கப்பட்ட தரவை அச்சிடுங்கள்
மணி::செலவு << 'அசல் சரம்:' <<strData<<மணி::endl;
// வரிசையைப் படித்து பிரித்த தரவை அச்சிடுங்கள்
மணி::செலவு << ' nஇடத்தின் அடிப்படையில் சரத்தை பிரித்த பிறகு மதிப்புகள்: ' <<மணி::endl;
க்கான (ஆட்டோ &மணி:வெளியீடு வரிசை) {
மணி::செலவு <<மணி<<மணி::endl;
}
திரும்ப 0;
}

வெளியீடு:



மேலே உள்ள குறியீட்டைச் செயல்படுத்திய பின் பின்வரும் வெளியீடு தோன்றும்.

Strtok () செயல்பாட்டைப் பயன்படுத்தி சரத்தைப் பிரிக்கவும்

ஸ்ட்ரிடாக் () செயல்பாட்டானது சரத்தின் ஒரு பகுதியை ஒரு டிலிமிட்டரின் அடிப்படையில் டோக்கனைஸ் செய்வதன் மூலம் ஒரு சரத்தை பிரிக்கப் பயன்படுகிறது. அது இருந்தால் அடுத்த டோக்கனுக்கு ஒரு சுட்டிக்காட்டி கொடுக்கிறது; இல்லையெனில், அது ஒரு முழுமையான மதிப்பை அளிக்கிறது. தி string.h இந்த செயல்பாட்டைப் பயன்படுத்த தலைப்பு கோப்பு தேவை. ஒரு வளையத்திற்கு சரத்திலிருந்து பிரிந்த அனைத்து மதிப்புகளையும் படிக்க வேண்டும். முதல் வாதத்தில் பாகுபடுத்தப்படும் சரம் மதிப்பு உள்ளது, இரண்டாவது வாதத்தில் டோக்கனை உருவாக்கப் பயன்படுத்தப்படும் எல்லை வரையறை உள்ளது. இந்த செயல்பாட்டின் தொடரியல் கீழே கொடுக்கப்பட்டுள்ளது.

தொடரியல்:

கரி * strtok ( கரி *str,கான்ஸ்ட் கரி *டிலிமிட்டர்கள்);

Strtok () செயல்பாட்டைப் பயன்படுத்தி ஒரு சரம் பிரிக்க பின்வரும் குறியீட்டைக் கொண்ட C ++ கோப்பை உருவாக்கவும். ஒரு பெருங்குடல் (‘:’) கொண்ட குறியீட்டில் பிரிவுகளின் ஒரு வரிசை வரையறுக்கப்பட்டுள்ளது. அடுத்து, தி strtok () முதல் டோக்கனை உருவாக்க சரம் மதிப்பு மற்றும் டிலிமிட்டருடன் செயல்பாடு அழைக்கப்படுகிறது. தி போது 'வரை மற்ற டோக்கன்கள் மற்றும் டோக்கன் மதிப்புகளை உருவாக்க லூப் வரையறுக்கப்பட்டுள்ளது ஏதுமில்லை மதிப்பு காணப்படுகிறது.

// தேவையான நூலகங்களைச் சேர்க்கவும்
#சேர்க்கிறது
#சேர்க்கிறது

intமுக்கிய()
{
// எழுத்துக்களின் வரிசையை அறிவிக்கவும்
கரிstrArray[] = 'மெஹ்ராப் ஹொசைன்: ஐடி தொழில்முறை: [மின்னஞ்சல் பாதுகாக்கப்பட்ட]: +8801726783423';
// ':' அடிப்படையில் முதல் டோக்கன் மதிப்பைத் திருப்பித் தரவும்
கரி *டோக்கன் மதிப்பு= strtok(ஸ்ட்ரே,':');
// எதிர் மாறியை துவக்கவும்
intஎதிர்= 1;
/ *
டோக்கன் மதிப்பை அச்சிட வளையத்தை மீண்டும் செய்யவும்
மீதமுள்ள சரம் தரவைப் பிரித்து பெறுங்கள்
அடுத்த டோக்கன் மதிப்பு
* /

போது (டோக்கன் மதிப்பு!= ஏதுமில்லை)
{
என்றால்(எதிர்== 1)
printf(பெயர்: %s n', டோக்கன் மதிப்பு);
வேறு என்றால்(எதிர்== 2)
printf(தொழில்: %s n', டோக்கன் மதிப்பு);
வேறு என்றால்(எதிர்== 3)
printf(மின்னஞ்சல்: %s n', டோக்கன் மதிப்பு);
வேறு
printf('மொபைல் எண்: %s n', டோக்கன் மதிப்பு);
டோக்கன் மதிப்பு= strtok(ஏதுமில்லை,':');
எதிர்++;
}
திரும்ப 0;
}

வெளியீடு:

மேலே உள்ள குறியீட்டைச் செயல்படுத்திய பின் பின்வரும் வெளியீடு தோன்றும்.

கண்டுபிடி () மற்றும் அழிக்கும் () செயல்பாடுகளைப் பயன்படுத்தி சரத்தைப் பிரிக்கவும்

கண்டுபிடிப்பு () மற்றும் அழித்தல் () செயல்பாடுகளைப் பயன்படுத்தி சரத்தை சி ++ இல் பிரிக்கலாம். ஒரு குறிப்பிட்ட டிலிமிட்டரை அடிப்படையாகக் கொண்டு ஒரு சரம் மதிப்பைப் பிரிப்பதற்கான கண்டுபிடிப்பு () மற்றும் அழிக்க () செயல்பாடுகளின் பயன்களை சரிபார்க்க பின்வரும் குறியீட்டைக் கொண்ட C ++ கோப்பை உருவாக்கவும். கண்டுபிடிப்பு () செயல்பாட்டைப் பயன்படுத்தி டிலிமிட்டர் நிலையை கண்டுபிடிப்பதன் மூலம் டோக்கன் மதிப்பு உருவாக்கப்படுகிறது, மேலும் அழிப்பு () செயல்பாட்டைப் பயன்படுத்தி டிலிமிட்டரை அகற்றிய பிறகு டோக்கன் மதிப்பு சேமிக்கப்படும். சரத்தின் முழு உள்ளடக்கமும் பகுக்கப்படும் வரை இந்த பணி மீண்டும் செய்யப்படும். அடுத்து, திசையன் வரிசையின் மதிப்புகள் அச்சிடப்படும்.

// தேவையான நூலகங்களைச் சேர்க்கவும்
#சேர்க்கிறது
#சேர்க்கிறது
#சேர்க்கிறது

intமுக்கிய(){
// சரத்தை வரையறுக்கவும்
மணி::லேசான கயிறுstringData= 'பங்களாதேஷ் மற்றும் ஜப்பான் மற்றும் ஜெர்மனி மற்றும் பிரேசில்';
// பிரிப்பானை வரையறுக்கவும்
மணி::லேசான கயிறுபிரிப்பான்= 'மற்றும்';
// திசையன் மாறியை அறிவிக்கவும்
மணி::திசையன்நாடு{};
// முழு எண் மாறியை அறிவிக்கவும்
intநிலை;
// சரம் மாறியை அறிவிக்கவும்
மணி::லேசான கயிறுoutstr, டோக்கன்;

/ *
சப்ஸ்ட்ர் () செயல்பாட்டைப் பயன்படுத்தி சரத்தை பிரிக்கவும்
மற்றும் பிரித்த வார்த்தையை திசையனில் சேர்க்கிறது
* /

போது ((நிலை=stringData.கண்டுபிடிக்க(பிரிப்பான்)) !=மணி::லேசான கயிறு::npos) {
டோக்கன்=stringData.துணை(0, நிலை);
// பிரித்த சரத்தின் முன்பக்கத்திலிருந்து கூடுதல் இடத்தை அகற்றவும்
நாடுபின்னால் தள்ளு(டோக்கன்.அழி(0, டோக்கன்.கண்டுபிடிக்க_முதலில் இல்லை('')));
stringData.அழி(0, நிலை+பிரிப்பான்.நீளம்());
}
// கடைசி வார்த்தையைத் தவிர அனைத்து பிரிந்த வார்த்தைகளையும் அச்சிடுங்கள்
க்கான (கான்ஸ்ட் ஆட்டோ &outstr:நாடு) {
மணி::செலவு <<outstr<<மணி::endl;
}
// கடைசியாக பிரிந்த வார்த்தையை அச்சிடுங்கள்
மணி::செலவு <<stringData.அழி(0, stringData.கண்டுபிடிக்க_முதலில் இல்லை('')) <<மணி::endl;
திரும்ப 0;
}

வெளியீடு:

மேலே உள்ள குறியீட்டைச் செயல்படுத்திய பின் பின்வரும் வெளியீடு தோன்றும்.

முடிவுரை

C ++ இல் ஒரு சரத்தை பிரிப்பதற்கான மூன்று வெவ்வேறு வழிகள் இந்த டுடோரியலில் எளிய எடுத்துக்காட்டுகளைப் பயன்படுத்தி விளக்கப்பட்டுள்ளன.