Witam
Jak w temacie. Zna może ktoś taką funkcję? Przeszukałem internet i nic nie znalazłem. Program jest pod konsolę.
Z góry dzięki
taaa Internet mówisz? I pewnie do tego cały? :] http://lmgtfy.com/?q=c%2B%2B+uppercase
poczytaj o ascii zobacz jaka jest różnica między np 'a' i 'A' (podpowiem 32) i dalej powinieneś już wiedzieć jak to wykorzystać (podpowiem, żadnej funkcji nie potrzebujesz pomimo, że takowe istnieją jak to wyżej kolega chyba podał)
I może mi jeszcze powiesz że u ciebie to śmiga na polskich znakach?
toupper();
kofii12345 napisał(a)
I może mi jeszcze powiesz że u ciebie to śmiga na polskich znakach?
To w tym przypadku odbiję piłeczkę: skąd mamy wiedzieć, na jakim systemie pracujesz? Bo rozwiązanie też zależy od tego, czy jest to Windows, czy Linux...
kofii12345 napisał(a)
I może mi jeszcze powiesz że u ciebie to śmiga na polskich znakach?
pytałeś o polskie znaki? Nie zadziała tak samo jak dla innych specjalnych znaków ale o nich też nic nie mówiłeś. Nie dziwię się, że "przeszukałeś cały internet" i nic znaleźć nie potrafiłeś skoro nawet precyzyjnie pytania nie umiesz zadać :)
jak nie mowiłem jak mowiłem:) windows oczywiscie
Sorry, że jeszcze nie zapytałem. Aplikacja GUI (okienkowa) czy CLI (w terminalu)? Jak się nie mylę, w polskim Windows w terminalu/wierszu polecenia jest strona kodowa Latin2. Można byłoby zrobić tablicę, która odpowiedniemu znakowi ('ą', 'ę', ...) przyporządkowuje odpowiedni znak z tej strony kodowej. W przypadku GUI wydaje mi się, że zadziałałaby zwykła zamiana 'ą', 'ę' na 'Ą', 'Ę', ...
Wystarczy zrobić to w ten sposób:
char ciag[9] = {"aąęćb"};
for(int i = 0; i < 6; i++)
if(ciag[i] >= 'a' && ciag[i] <= 'z')
ciag[i] = ciag[i] + ('A' - 'a');
else if(ciag[i] == 'ą')
ciag[i] = 'Ą';
else if(/*...tutaj wszystkie poslkie znaki w oddzielnych ifach*/) // z tego względu, że one chyba nie są pokolei
kofii12345 napisał(a)
jak nie mowiłem jak mowiłem:) windows oczywiscie
Nie aż takie oczywiste.
Obejrzyj jakie wartości mają poszczególne polskie znaki w różnych kodowaniach i potem sprawdzaj i zamieniaj. Można założyć że znak 0-127 to nie jest polski, natomiast <0 (w unsigned: 127<) to już jest jakiś polski znak. W przypadku UTF-8 są 2 bajty, więc funkcja sprawdzająca powinna otrzymać nie char, tylko char* i nie zwracać małą literę, bo to z UTF było by trudne raczej, tylko od razu najlepiej zamieniać, skoro i tak wskaźnik przekazujesz.