24.08.2013, 16:19. Просмотров 6331. Ответов 12
Эти три функции не хотят нормально работать с кириллицей. Если им скормить американские литеры, все нормально. Но вот, например, эта программа печатает "тест", а по-идее должна "ТЕСТ".
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| // Преобразование строчных символов в заглавные.
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
int main()
{
char str[80];
int i;
strcpy(str, "тест");
for (i = 0; str[i]; i++)
str[i] = toupper(str[i]);
cout << str << endl;
return 0;
} |
|
Также strlen("тест!") возвращает девять символов (каждый русский считается за два). Компилятор g++.