Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для Abbattar
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 21

Неверное отображение перевёнутой строки

26.06.2011, 03:26. Показов 2839. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Код переписан из учебника "Шаг за шагом. С++" Г.Шилдта

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
 Проект 4-2 "Переворачивание строки".
*/
 
#include <iostream>
#include <cstring>
using namespace std;
 
int main(){
    
    char str[] = "Это проверка работы программы", *firstEl, *lastEl, tVar;
    int lenVar;
    
    cout << "\nИсходная строка: " << str << "\n\n";
    
    lenVar = strlen(str);
    
    firstEl = str;
    lastEl = &str[lenVar - 1];
    
    while(firstEl < lastEl){
        
        /* произведём обмен символами */
        
        tVar = *firstEl;
        *firstEl = *lastEl;
        *lastEl = tVar;
        
        /* Продвинем указатели */
        
        firstEl++;  lastEl--;
    }
    
    cout << "Перевёрнутая строка: " << str << "\n\n";
    
    return 0;
}
вывод программы, такой:

Исходная строка: Это проверка работы программы

Перевёрнутая строка: �ѼмаЀѳоЀѿ� �тѾбаЀ� �кЀѵвоЀѿ� �Ђѭ�
в чём ошибка может быть, ведь строка переворачивается с изменением?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.06.2011, 03:26
Ответы с готовыми решениями:

Неверное отображение кириллических символов в консоли
Добавление языка в программе есть, а он каракули выводит! Что я делаю не так? #include&lt;iostream&gt; #include &lt;fstream&gt; ...

Неверное определение длины строки
Всем привет. почему так происходит? пишу так char* nama = new char; cout &lt;&lt; &quot;strlen = &quot; &lt;&lt; strlen(nama) &lt;&lt; endl; ...

Строки: почему выводится неверное количество символов?
Почему выводит количество символов 507, хотя массив равен 500 символов #include &lt;iostream&gt; int main() { using namespace std; ...

21
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
08.08.2011, 02:41
Студворк — интернет-сервис помощи студентам
Так ведь особо комментировать-то и нечего.
mbtowc(NULL, s, 7) возвращает количество байт, которым представляется очередная буква в многобайтовой кодировке, но не больше 7 в данном случае (на самом деле в UTF-8 теоретически не может быть больше 6, а практически не больше 4). Для конца строки возвращается 0, при ошибке -1.
Чтобы вывод работал правильно нужное количество символов копируется в буфер и дополняется завершающим нулём
C++
1
2
memcpy(buf, s, bytes);
buf[bytes] = '\0';
После чего полученная строка (из одного символа, но не обязательно из одного байта) выводится на экран обычным образом.
1
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
17.08.2011, 17:09
Цитата Сообщение от grizlik78 Посмотреть сообщение
mbtowc(NULL, s, 7) возвращает количество байт, которым представляется очередная буква в многобайтовой кодировке, но не больше 7 в данном случае
Вот подумал сейчас, что для этого правильнее было использовать mblen(s, 7). Хотя разница небольшая.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.08.2011, 17:09

Неверное отображение
Здравствуйте, я недавно занимаюсь версткой , скорее даже не занимаюсь а просто учусь. У меня возникла проблема, набросал сайт но...

Неверное отображение
Здравствуйте, товарищи! Интересуюсь HTML, CSS совсем немного, опыта пока у меня маловато. Недавно от знакомого поступило предложение...

Неверное отображение в IE
Здравствуйте.Есть такой вопрос насчёт :hover в css В фаирфоксе нижеследующий код работает, а в IE нет.Кто знает как разобраться? ...

Неверное отображение данных
Добрый день. Прошу помощи, не могу найти в чем затык. На форме &quot;Прайс&quot; и &quot;ПоискФильтр&quot; есть данные (где есть пункт Валюта),...

Неверное отображение кодировки
Приветствую всех. Имею сайт. На сайте немного странный способ работы. Есть индекс, с которого подгружается вся страница, а содержание...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru