Mama małe pytanko: Czy są odpowiedniki funkcji CHR i ORD w C++?
Z góry dzięki za pomoc.
Mama małe pytanko: Czy są odpowiedniki funkcji CHR i ORD w C++?
Z góry dzięki za pomoc.
W C++ char jest typem wyliczeniowym - tak jak typy liczbowe, więc znaki są jakby swoim kodem. Wystarczy użyć rzutowania:
Liczby i znaki, mogą być też rzutowane miedzy sobą (nie)jawnie.
cout << "'2' + '2' = " << '2' + '2' << endl;
// 100
cout << "char('2' + '2') = " << char('2' + '2') << endl;
// d
cout << "c + 1 = " << 'c' + 1 << endl;
// 100
cout << "int(c + 1) = " << int('c' + 1) << endl;
// 100
cout << "char(c + 1) = " << char('c' + 1) << endl;
// d
Ale char i int to nie są funkcje wbudowane! To jest pewno notacja rzutowania. Takie coś tez jest możliwe:
cout << "'a' + 3.5 = " << 'a' + 3.5 << endl; // 100.5 - niejawne rzutowanie char na int: 'a' ==> 97
cout << "float('d') = " << float('d') << endl; //100.0
cout << "double('d' + 0.5) = " << double('d' + 0.5) << endl; //100.5
cout << "char('a' + 3.14) = " << char('a' + 3.14) << endl; // d
// Inne formy rzutowania
cout << "(int)'d' = " << (int)'d' << endl; // 100
cout << "(int)('d' + 0.5) = " << (int)('d' + 0.5) << endl; //100
cout << "static_cast('d') = " << static_cast('d') << endl; // 100
Dzięki też już to znalazłem.