Mam ten ciąg:C++ podciąg powrocie błędne wyniki
std::string date = "20121020";
robię:
std::cout << "** Date: " << date << "\n";
std::cout << "Year: " << date.substr(0,4) << "\n";
std::cout << "Month: " << date.substr(4,6) << "\n";
std::cout << "Day: " << date.substr(6,8) << "\n";
Ale im uzyskiwanie:
** Date: 20121020
Year: 2012
Month: 1020
Day: 20
Zauważ, że miesiąc powinien być 10
, nie 1020
. Pozycje są poprawne, wypróbowane wszystko, to się nie udaje?
Drugi argument to długość podłańcucha, a nie indeks końcowy. –
'std :: string date = 20121020' jest niepoprawny składniowo. Czy chodziło Ci o 'std :: string date =" 20121020 "'? –
@ Daniel Fisher, równie dobrze może to zrobić, ponieważ jest to dokładnie problem. – Chad