logo

Alimerkkijono C++:ssa

Osamerkkijonotoimintoa käytetään merkkijonotoimintojen, kuten murtunut () , liitä() , jne . Se luo uuden merkkijonon, jonka arvo on alustettu tämän objektin alimerkkijonon kopioksi. C++:ssa otsikkotiedosto, joka vaaditaan std::substr(), merkkijonofunktioille .

Osamerkkijonofunktio saa kaksi arvoa pos ja vain argumenttina ja palauttaa äskettäin rakennetun merkkijonoobjektin, jonka arvo on alustettu tämän objektin alimerkkijonon kopioksi. Merkkijonon kopiointi alkaa pos ja tehdään siihen asti post+len tarkoittaa [pos, pos+len).

Syntaksi:



string substr (size_t pos, size_t len) const;>

Parametrit:

  • pos: Ensimmäisen kopioitavan merkin sijainti.
  • vain: Alimerkkijonon pituus.
  • koko_t: Se on allekirjoittamaton integraalityyppi.

Palautusarvo: Se palauttaa merkkijonoobjektin.

Esimerkki:

C++
// C++ program to demonstrate functioning of substr() #include  #include  using namespace std; int main() {  // Take any string  string s1 = 'Geeks';  // Copy two characters of s1 (starting  // from position 3)  string r = s1.substr(3, 2);  // prints the result  cout << 'String is: ' << r;  return 0; }>

Lähtö
String is: ks>
  • Aika monimutkaisuus: PÄÄLLÄ)
  • Aputila: PÄÄLLÄ)

Lisää esimerkkejä:

string: '  h e l l o w o r l d  ' index: 0 1 2 3 4 5 6 7 8 9 10>

jos kirjoitamme: -

kuinka ketjuttaa merkkijonoja javassa
  • s.substr(s.begin(),3) => käännösvirhe (koska iteraattoria ei voi muuntaa int-tietotyypiksi)
  • s.substr(2,3) => llo (kolme kirjainta toisesta hakemistosta)
  • s.substr(*s.begin()-s[0],3) => hel (*s.begin() on 'h', sitten 'h'-s[0]=> 'h'-'h'=0 tarkoittaa substr(0,3) - kolme kirjainta nollasta indeksistä
  • s.substr(5,1) => ‘’ (tulostaa tyhjän tilan , eli 5. hakemistossa)
  • s.substr(2,0) => (ei tuloste) (valitsee nollaa kirjainta toisesta indeksistä)

Tärkeitä huomioita

  1. Ensimmäisen merkin indeksi on 0 (ei 1).
  2. Jos pos on yhtä suuri kuin merkkijonon pituus, funktio palauttaa tyhjän merkkijonon.
  3. Jos pos on suurempi kuin merkkijonon pituus, se heittää out_of_range. Jos näin tapahtuu, merkkijonossa ei ole muutoksia.
  4. Jos pyydetty alimerkkijono vain on suurempi kuin merkkijonon koko, niin palautettu alimerkkijono on [pos, koko()) .
  5. Jos vain ei välitetä parametrina, niin palautettu alimerkkijono on [pos, koko()).

Alimerkkijonon sovellukset

  • Hanki alimerkkijono merkin jälkeen
  • Hanki alimerkkijono ennen merkkiä
  • Tulosta tietyn merkkijonon kaikki alimerkkijonot
  • Lukua edustavan merkkijonon kaikkien osamerkkijonojen summa
  • Tulosta lukua edustavan merkkijonon kaikkien osamerkkijonojen enimmäisarvo
  • Tulosta numeroa edustavan merkkijonon kaikkien osamerkkijonojen vähimmäisarvo

Hanki alimerkkijono merkin jälkeen

Tässä annetaan merkkijono ja merkki, ja sinun on tulostettava alimerkkijono, jota seuraa annettu merkki.
Pura kaikki sen jälkeen : merkkijonossa koira kissa .

Esimerkki:

C++
// C++ program to demonstrate functioning of substr() #include  #include  using namespace std; int main() {  // Take any string  string s = 'dog:cat';  // Find position of ':' using find()  int pos = s.find(':');  // Copy substring after pos  string sub = s.substr(pos + 1);  // prints the result  cout << 'String is: ' << sub;  return 0; }>

Lähtö
String is: cat>

Aika monimutkaisuus: PÄÄLLÄ)

Aputila: PÄÄLLÄ)

taulukot java

Kuinka saada osamerkkijono ennen merkkiä?

Tässä annetaan merkkijono ja merkki, ja sinun on tulostettava alimerkkijono, jota seuraa annettu merkki.

Esimerkki:

C++
// C++ program to demonstrate functioning of substr() #include  #include  using namespace std; int main() {  // Take any string  string s = 'dog:cat';  // Find position of ':' using find()  int pos = s.find(':');  // Copy substring before pos  // Extract everything before the ':' in the string  // 'dog:cat'.  string sub = s.substr(0, pos);  // prints the result  cout << 'String is: ' << sub;  return 0; }>

Lähtö
String is: dog>

Aika monimutkaisuus: PÄÄLLÄ)

Aputila: PÄÄLLÄ)

Kuinka tulostaa tietyn merkkijonon kaikki alimerkkijonot?

Annettu syötteeksi merkkijono. Meidän on kirjoitettava ohjelma, joka tulostaa kaikki kyseisen merkkijonon ei-tyhjät osamerkkijonot.

Esimerkki:

C++
// C++ program to demonstrate all possible // substrings of a given string #include  using namespace std; // Function to print all sub strings void subString(string s, int n) {  // Pick starting point in outer loop  // and lengths of different strings for  // a given starting point  for (int i = 0; i < n; i++)  for (int len = 1; len <= n - i; len++)  cout << s.substr(i, len) << endl; } // Driver program to test above function int main() {  string s = 'abcd';  subString(s, s.length());  return 0; }>

Lähtö
a ab abc abcd b bc bcd c cd d>

Aika monimutkaisuus: PÄÄLLÄ3)

Aputila: O(1)

Tulosta lukua edustavan merkkijonon kaikkien osamerkkijonojen summa

Kun kokonaisluku esitetään merkkijonona, meidän on saatava tämän merkkijonon kaikkien mahdollisten osamerkkijonojen summa.

Esimerkki:

C++
// C++ program to print sum of all possible substring of // a number represented as a string #include  using namespace std; // Utility method to convert character digit to // integer digit int toDigit(char ch) { return (ch - '0'); } // Returns sum of all substring of num int sumOfSubstrings(string s) {  vector v;  int n = s.length();  for (int i = 0; i< n; i++) {  for (int len = 1; len <= n - i; len++) {  string sub = (s.substr(i, len));  int x = stoi(sub);  v.push_back(x);  }  }  int res = accumulate(v.begin(), v.end(), 0);  return res; } // Driver code to test above methods int main() {  string num = '1234';  cout << sumOfSubstrings(num) << endl;  return 0; }>

Lähtö
1670>

Aika monimutkaisuus: PÄÄLLÄ3)
Aputila: PÄÄLLÄ)

Tulosta numeroa edustavan merkkijonon kaikkien osamerkkijonojen enimmäisarvo

Kun kokonaisluku esitetään merkkijonona, meidän on saatava suurin mahdollinen lukua edustavan merkkijonon osamerkkijono.

Esimerkki:

C++
// C++ program to demonstrate max. of all possible // substrings of a given string #include  using namespace std; void subString(string s, int n) {  vector v;  for (int i = 0; i< n; i++) {  for (int len = 1; len <= n - i; len++) {  string sub = (s.substr(i, len));  int x = stoi(sub);  v.push_back(x);  }  }  cout << *max_element(v.begin(), v.end()) << endl; } // Driver program to test above function int main() {  string s = '823';  subString(s, s.length());  return 0; }>

Lähtö
823>

Selitys: Kaikki osamerkkijonot ovat { 8, 82, 823, 2, 23, 3 } ja enimmäisarvo alimerkkijono on 823.

Aika monimutkaisuus: PÄÄLLÄ3)

Aputila: PÄÄLLÄ!)

Tulosta numeroa edustavan merkkijonon kaikkien osamerkkijonojen vähimmäisarvo

Kun kokonaisluku esitetään merkkijonona, meidän on saatava pienin mahdollinen lukua edustavan merkkijonon kaikista mahdollisista osamerkkijonoista.

Esimerkki:

topologiat
C++
// C++ program to demonstrate minimum of all possible // substrings of a given string #include  using namespace std; void subString(string s, int n) {  vector v;  for (int i = 0; i< n; i++) {  for (int len = 1; len <= n - i; len++) {  string sub = (s.substr(i, len));  int x = stoi(sub);  v.push_back(x);  }  }  cout << *min_element(v.begin(), v.end()) << endl; } // Driver program to test above function int main() {  string s = '4572';  subString(s, s.length());  return 0; }>

Lähtö
2>

Aika monimutkaisuus: PÄÄLLÄ3)
Aputila: PÄÄLLÄ!)

Muut alimerkkijonon sovellukset

  • Tekstihaku: Alimerkkijonoja käytetään sanojen tai lauseiden etsimiseen suuremmista tekstikappaleista. Tätä käytetään yleisesti hakukoneissa, joissa käyttäjä saattaa kirjoittaa lauseen tai avainsanan, ja kone etsii kaikki osumat, jotka sisältävät kyseisen alimerkkijonon.
  • Tekstin jäsentäminen: Alimerkkijonoja käytetään tekstin jäsennysalgoritmeissa suurempien merkkijonojen pilkkomiseen pienemmiksi paloiksi. Esimerkiksi jäsentimen avulla voidaan erottaa yksittäisiä sanoja lauseesta ja tallentaa ne tietorakenteeseen.
  • Tekstin käsittely: Alimerkkijonoja käytetään tekstinkäsittelysovelluksissa tiettyjen sanojen tai lauseiden etsimiseen ja korvaamiseen suuremmissa tekstiosissa. Tätä voidaan käyttää haku- ja korvaustehtävien suorittamiseen tai asiakirjan tietojen päivittämiseen.
  • Luonnollisen kielen käsittely: Osamerkkijonoja käytetään luonnollisen kielen käsittelyalgoritmeissa sanojen ja lauseiden tunnistamiseen. Tätä käytetään sovelluksissa, kuten puheentunnistuksessa, jossa algoritmin on tunnistettava käyttäjän puhumat sanat.
  • Hahmontunnistus: Alimerkkijonoja käytetään hahmontunnistusalgoritmeissa datan kuvioiden tunnistamiseen. Tätä voidaan käyttää taloustietojen trendien tunnistamiseen tai kuvien poikkeavuuksien havaitsemiseen.
  • Salasanasuojaus: Alimerkkijonoja käytetään salasanojen vahvistamiseen. Tämä tehdään vertaamalla annettua salasanaa alkuperäisen salasanan tallennettuun osamerkkijonoon. Jos nämä kaksi täsmäävät, salasana vahvistetaan. Tätä tekniikkaa käytetään monissa sovelluksissa turvallisuuden lisäämiseksi.