これは私を困惑させてきました、単純なコード:
int main()
{
typedef std::string::size_type stype;
std::cout << "What is your first name?\n";
std::string first,second,fullname;
std::cin >> first;
std::cout << "What is your second name?\n";
std::cin >> second;
char * backwards;
fullname = first + " " + second;
stype fnsize = fullname.size();
backwards = new char [fnsize];
stype b = 0;
for(stype a = fnsize; a != 0; --a)
{
backwards[b++] = fullname[a - 1];
}
std::cout << backwards << std::endl;
return 0;
}
ほとんどの場合は機能しますが、自分の名前であるstanislaw terzievを作成すると、veizretwalsinatsではなく出力veizretwalsinatsslawが返されます。
なんでそうなの?