Hoe krijg ik een letter van String op index? C++

Kan iemand kort uitleggen hoe je een karakter uit de index haalt uit String in C++.

Ik moet de eerste 3 letters van een string lezen en in java zou hetstr.charAt(index)zijn en ik ben nu al 2 uur op internet aan het zoeken naar een oplossing en doe het nog steeds niet’ niet begrijpen…

kan iemand mij een voorbeeld geven.


Antwoord 1, autoriteit 100%

std::stringgeeft operator[]toegang tot een teken op index:

https://en.cppreference.com/w/cpp/string /basic_string/operator_at

Voorbeeld:

const std::string s("hello");
const char c = s[0];
// c is set to ‘h’

Antwoord 2

substr()
Het retourneert een nieuw geconstrueerd tekenreeksobject waarvan de waarde is geïnitialiseerd op een kopie van een subtekenreeks van dit object.

Syntaxis
substr(pos, pos+len)

Code

std::string str ("Test string"); //string declaration
string sub_string = str.substr(0,3); 

Tekenreeksindex begint bij 0.


Antwoord 3

De beste plaats om te zoeken is cpluspluc.com: http://www.cplusplus. com/referentie/string/string/

U kunt gebruiken zoals eerder vermeld: http://www.cplusplus .com/reference/string/string/operator[]/

 std::string str ("Test string");
  for (int i=0; i<str.length(); ++i)
  {
    std::cout << str[i];
  }

Of beter nog: http://www.cplusplus.com/reference/ string/string/at/

 std::cout << str.at(i);

die ook controleert op een geldige positie en anders een uitzondering buiten bereik genereert.

Als alternatief kunt u http://www.cplusplus.com/reference/ gebruiken string/string/data/
om toegang te krijgen tot de onbewerkte gegevens.

Of als je wilt controleren of je string begint met een specifiek patroon: http ://www.cplusplus.com/reference/string/string/rfind/

 std::string str = "Hey Jude!";
  if (str.rfind("Hey", 0) == 0) {
    // match
  }

Antwoord 4

Een andere optie om een enkel teken te verkrijgen is het gebruik van de std::string ::at()ledenfunctie. Om een substring van een bepaalde lengte te verkrijgen, gebruikt u de std::string::substr ledenfunctie.

Other episodes