Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
1

При смещении символов в строке выдается результат в виде кривых символов

22.04.2013, 20:31. Показов 1017. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня такая проблема: дело в том что я циклом смещаю символы в строке вот таким образом,
C
1
2
n=strlen(str);
for(n;j<n;n--) str[n]=str[n+2];
и после смещения символы выводятся в виде кривых иероглифов. Подскажите в чем может быть проблема. Если нужны ещё какие то параметры программы, что может быть причиной такого вывода - говорите, добавлю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2013, 20:31
Ответы с готовыми решениями:

Исходное число задать в виде строки символов в коде ASCII, результат сформировать в виде двоичного кода в формате слова
Исходное число задать в виде строки символов в коде ASCII, результат сформировать в виде двоичного...

Строку из n символов распечатать по m символов. Если в последней строке нет m символов, то ее не печатать
Строку из n символов распечатать по m символов в строке. Если в последней строке нет m символов, то...

В строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3
и вот 2 задачка. В заданной строке символов установить пробелы вместо символов,номера позиций...

При вводе номерного знака в виде строки символов, найти в этой строке сочетание определенных цифр
Требуется написать программу которая при вводе номерного знака в виде строки символов находила в...

6
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
22.04.2013, 21:22 2
Ересь адская. Вот скажите, если n равно длине строки, то где находится символ с индексом n+2?
0
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
22.04.2013, 21:28  [ТС] 3
Цитата Сообщение от HighPredator Посмотреть сообщение
Ересь адская. Вот скажите, если n равно длине строки, то где находится символ с индексом n+2?
Я строку забивал как одномерный массив сомволов. Вмещается в массив больше чем на самом деле туда ввели символов, ввод символов завершен '\0' . С превышением размеров никаких проблем нету, проблема только в том, что после присвоения
str[n]=str[n+2] от туда с помощью функции puts(str) выводятся иероглифы вместо символов.
0
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
22.04.2013, 21:43 4
Как вы строку вводили? Код приведите.
0
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
22.04.2013, 21:45  [ТС] 5
Как вы строку вводили? Код приведите.
C
1
2
3
i=0;
do str[i]=getche(); while(str[i++]!='\r');
str[i-1]='\0';
0
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
22.04.2013, 21:50 6
Понятно. Суть такая: у вас нуль-терминатор имеет индекс n. Все, что справа от него - мусор. Вы на первом проходе как раз его и затираете. Ну и далее по циклу.

Добавлено через 54 секунды
Вот кстати на всякий случай вам ссылочка: https://www.cyberforum.ru/blogs/18334/blog97.html
Умнейший человек расписал что да как.
1
81 / 81 / 33
Регистрация: 03.03.2013
Сообщений: 311
23.04.2013, 08:58  [ТС] 7
Цитата Сообщение от HighPredator Посмотреть сообщение
Понятно. Суть такая: у вас нуль-терминатор имеет индекс n. Все, что справа от него - мусор. Вы на первом проходе как раз его и затираете. Ну и далее по циклу.

Добавлено через 54 секунды
Вот кстати на всякий случай вам ссылочка: https://www.cyberforum.ru/blogs/18334/blog97.html
Умнейший человек расписал что да как.
Так Вы сможете помочь мне найти ошибку? Мне сложно найти ее самому прочитав вашу ссылку.

Добавлено через 10 часов 25 минут
Всё, я сообразил) Спасибо.
0
23.04.2013, 08:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2013, 08:58
Помогаю со студенческими работами здесь

Curl возвращает результат в виде массива символов а не данных
Всем добрый вечер пишу api к шлюзу Dinstar. Sms и Ussd отправляет отлично, теперь стал вопрос с...

В строке символов выяснить, имеется ли в строке пара одинаковых символов до первого восклицательного знака
Ребята буду признателен если поможете. Написать, подпрограмму, которая в строке символов...

Удалить конец строки символов. Ввести кол-во удаляемых символов , вывести результат ,String ,задачка,С++
Удалить конец строки символов. Ввести количество удаляемых символов , вывести результат на печать ....

Написать функцию, которая сравнивает целых числа и возвращает результат сравнения в виде одного из символов: <,> или =
Написати функцію, яка порівнює цілих числа і повертає результат порівняння в вигляді одного з...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru