Аватар для Abbattar
1 / 1 / 0
Регистрация: 06.04.2011
Сообщений: 21

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

26.06.2011, 03:26. Показов 2849. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru