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::string
geeft 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.