Letztes Zeichen eines strings
-
Hi,
warum erfahr ich damit nicht, ob das letzte Zeichen eines std::strings ein / bzw. \ oder was anderes ist. true wird nie returned ...
if (strPath[strPath.size()] == '\\' || strPath[strPath.size()] == '/') return true;
ChrisM
-
Das letzte Zeichen ist doch im normalfall über den NulTerminator ( \0 ) terminiert.
-
size()-1
-
Original erstellt von Peter Piksa:
Das letzte Zeichen ist doch im normalfall über den NulTerminator ( \0 ) terminiert.Les nochmal deinen Satz durch
Was er meinte: Das letzte Zeichen ist immer '\0'.
-
Ach ja danke, Arrays zählen ja ab 0.
ChrisM
-
Original erstellt von Lars:
Was er meinte: Das letzte Zeichen ist immer '\0'.... was für std::string natürlich falsch ist.
-
Ich weiß, size() gibt die Größe der kontrollierten Sequenz ohne \0 zurück, aber Arrays fangen bei 0 zu zählen kann!
ChrisM
-
'std::string' darf Nullbytes enthalten.
std::string s; size_t sz1, sz2; s = "Donaudampfschifffahrts..."; sz1 = s.size(); s[0] = '\0'; sz2 =s.size(); if (sz1 != sz2) send_to(standard_library_vendor, "std::string ist not zero terminated. Correct your implementation");