Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
74 / 74 / 13
Регистрация: 21.10.2010
Сообщений: 376

Строки и русский алфавит

21.11.2011, 10:59. Показов 4133. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В проге считываешь с файла строку на кириллице. Например: "ололо", длину выведет 10. Почему?
А как тогда со строкой, как с массивом в этом случае работать?
C++
1
temp.erase(5,6)
надо последний элемент вырезать слова из 6 букв, а не получается из-за длины строки странной.
C++
1
 temp[i]=char(tolower(temp[i]));//temp - строка
такая операция будет адекватно работать? Или надо по-другому?
Последний вопрос
C++
1
 temp[i]='ф';
- такое может правильно работать, или надо по-другому?

Добавлено через 10 часов 44 минуты
up!
пытался дебажить, а показывает мне значение temp 0 "" ?
я не понимаю, почему
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2011, 10:59
Ответы с готовыми решениями:

русский алфавит
//--------------------------------------------------------------------------- #include <stdio.h> #include <conio.h> ...

Закодировать русский алфавит в цифру путем сложения цифр кода
Добрый день! Нужна прога, нужно забинтовать буквы точнее русский алфавит на цифры а=1, б=2 в=3 и тд соответсвенно последняя буква алфавита...

Вывести на экран алфавит строки
Нужно вывести на экран алфавит слова, то есть все различные буквы. К примеру, есть слово "alfavit", нужно чтобы вывело только...

12
Заблокирован
21.11.2011, 11:02
Hi4ko, запрос сформулируй по человечески. Телепатов нет.
0
74 / 74 / 13
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 11:31  [ТС]
Цитата Сообщение от Bers Посмотреть сообщение
Hi4ko, запрос сформулируй по человечески. Телепатов нет.
Есть у меня задача. С .txt файла брать слова и манипулировать(удалить последний элемент, изменить букву в строке и т.д)
У меня с этим есть проблемы
Например:
input.txt "Александр Сергеевич Пушкин"
C++
1
2
3
4
5
6
7
8
int main()
{
    ifstream in("input.txt");
string s;
in>>s; 
s[0]='Л';
cout<<s<<" "<<int(s.length())<<endl; 
}
Output:
(Среда: Netbeans 7.0.1)
��лександр 18
��ергеевич 18
��ушкин 12

Как сделать, чтобы можно было поменять в строке любой символ на другой и поменять регистр первой буквы, если слово начинается с большой буквы? И удалить последний символ в строке(через erase() бы сделал, но длину строки показывает странную)?
0
Заблокирован
21.11.2011, 11:39
Длина строки не странная. Просто в Вашем случаее каждый символ занимает 2 байта.
Это значит, что при работе с такимми файлами надо , как минимум пользоваться не типом char, а типом wchar_t.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.11.2011, 11:54
.Hi4ko, дружище! Все это заморочки UNICODE. У него свои функции определения длины, типа wstrlen вместо strlen. Лично я стараюсь UNICODE по возможности избегать. И твой пост только укрепил меня в этом намерении. Также стараюсь избегать AnsiString, методы его чудовищны и один другого не понимает. А если никуда не деться (все компоненты на нем построены) делаю strcpy(b, A.c_str()), работаю с b, потом A = b; "Оно надежней, да к тому и тише". И еще безумно раздражает в dfm штуки вроде Caption = "\1020..." там где должен быть русский текст. Вот такой я ретроград - имею право?
Ну что ж поделаешь, плетемся мы в хвосте цивилизации, правила игры выдуманы не нами - терпи!
1
74 / 74 / 13
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 12:36  [ТС]
Цитата Сообщение от Байт Посмотреть сообщение
.Hi4ko, дружище! Все это заморочки UNICODE. У него свои функции определения длины, типа wstrlen вместо strlen. Лично я стараюсь UNICODE по возможности избегать. И твой пост только укрепил меня в этом намерении. Также стараюсь избегать AnsiString, методы его чудовищны и один другого не понимает. А если никуда не деться (все компоненты на нем построены) делаю strcpy(b, A.c_str()), работаю с b, потом A = b; "Оно надежней, да к тому и тише". И еще безумно раздражает в dfm штуки вроде Caption = "\1020..." там где должен быть русский текст. Вот такой я ретроград - имею право?
Ну что ж поделаешь, плетемся мы в хвосте цивилизации, правила игры выдуманы не нами - терпи!
C++
1
2
3
4
5
6
{
        wchar_t b[40];
        string temp; 
        in>>temp;
        strcpy(b,temp.c_str());
}
не даёт нормально перевести. Char и wchar_t не согласуются же(
Как нормально сделать?)
0
Заблокирован
21.11.2011, 12:41
http://wm-help.net/books-onlin... 64-13.html
1
74 / 74 / 13
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 13:01  [ТС]
Цитата Сообщение от Bers Посмотреть сообщение
признаюсь, я слаб, но я не могу найти, как явно преобразовать char[] в wchar_t[] в Linux. Точнее, простого примера программы не могу найти, где был бы char[] a и wchar_t [] b= a
0
Заблокирован
21.11.2011, 13:09
Цитата Сообщение от Hi4ko Посмотреть сообщение
ризнаюсь, я слаб, но я не могу найти, как явно преобразовать char[] в wchar_t[] в Linux. Точнее, простого примера программы не могу найти, где был бы char[] a и wchar_t [] b= a
Я - агент корпорации Зла. Так что...

http://mbv06.ucoz.ru/forum/19-30-1
0
74 / 74 / 13
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 13:25  [ТС]
Цитата Сообщение от Bers Посмотреть сообщение
Я - агент корпорации Зла. Так что...

http://mbv06.ucoz.ru/forum/19-30-1
ну я переведу кодировку .txt файла, который весь на кириллице.
Никак мне это не поможет, я думаю)
Ситуация такая. Считываем слово с файла. Надо его преобразовать так, чтобы с ним можно было работать, как с обычным массивом.
C++
1
2
3
4
ifstream in("input.txt");
wstring s;
wchar_t a[40];
in>>s //не работает
C++
1
2
3
4
5
ifstream in("input.txt");
string s;
wchar_t a[40];
in>>s;
wcscpy(a,s.c_str()); //не работает, потому что char и wchar_t
Так что я до сих пор не нашёл правильного способа перевода(
0
Заблокирован
21.11.2011, 13:31
Цитата Сообщение от Hi4ko Посмотреть сообщение
ну я переведу кодировку .txt файла, который весь на кириллице.
Нет такой кодировки.

Твоя задача держать исходные данные в приемлемой кодировке.
И читать эти данные штатными средствами, которые понимают эту кодировку.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.11.2011, 15:44
C
1
2
char s[40];
in >> s;
0
Заблокирован
21.11.2011, 17:03
Там есть такая маленькая тонкость (хотя я сам еще серьезно не изучал этот вопрос), связанная с тем, что в некоторых случаях при открытии файла, место, откуда происходит считывание, находится в самом конце этого файла.
Рекомендую, поэтому, очень внимательно прочитать, что происходит при открытии файла на те или иные операции и действовать сообразно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.11.2011, 17:03
Помогаю со студенческими работами здесь

Русский и строки
вот есть такой кусок кода, сравнивающий строки: while(getline(user_state, buffer)){ cout &lt;&lt; &quot;\n&quot;...

Xcode , С++ и русский язык: как вывести в файл русский текст без сбитой кодировки?
Как сделать так, чтобы после некоторых манипуляций в файл выводился русский текст без сбитой кодировки?

Русский ввод и русский вывод
Я знаю, что для того, чтобы был виден русский язык, я использую команду setlocale(LC_ALL,&quot;Russian&quot;) Для того, чтобы в...

Алфавит
You given N and one line of length N (1&lt;=N&lt;=1000)than consist of letter in interval A..Z. Your task is to find out how often each letter...

Алфавит
Каждой букве русского алфавита соответствует соответствующий номер А=1, Б=2 и т.д. Написать программу которая при вводе пользователем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru