Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
15 / 15 / 7
Регистрация: 20.11.2013
Сообщений: 92
1

после цикла while символьный массив обнуляется?

01.12.2013, 00:28. Показов 1094. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно сабж. Подскажите, в чем проблема
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int RemoveChar(char *_str, int _strt, int _amt)
{
    int i = 0;
#ifdef CHECKING 
    while(*_str++) i++;      <- После цикла массив пустой
    if(i < _amt) return -1;
#endif
 
    for(i = 0; i < _amt; i++, _strt++)
    {
          *(_str + _strt) = 32;
          }
    return 0; 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2013, 00:28
Ответы с готовыми решениями:

Обнуляется массив после ядра
Здравствуйте. Пишу программу по фильтрации синусоиды. Коэффициенты фильтра задаю массив, фильтр...

Массив обнуляется после окончания функции Page_Load
У меня есть тестовая страница, вопросы с вариантами ответа читаются из файла и выдаются в тестовую...

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

Скопировать одномерный символьный массив в двумерный символьный массив
Здравствуйте, учусь программировать на Си. Столкнулся с проблемой: не могу скопировать одномерный...

8
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
01.12.2013, 01:47 2
А какая роль данного цикла?
0
13 / 13 / 4
Регистрация: 17.11.2013
Сообщений: 39
01.12.2013, 01:55 3
На сколько я могу понимать, Вы этим циклом пытаетесь посчитать количество символов в строке?
0
15 / 15 / 7
Регистрация: 20.11.2013
Сообщений: 92
01.12.2013, 02:06  [ТС] 4
Цитата Сообщение от caiman Посмотреть сообщение
На сколько я могу понимать, Вы этим циклом пытаетесь посчитать количество символов в строке?
Ну да, пока while не встретит нуль, i приращивается. Но почему то с каждым проходом строка уменьшается на один символ. Т.е если была строка SOMETHINK, то с каждым проходом OMETHINK, METHINK ETHINK и так до конца. Разве инкремент++ присваивает значение в строку?
0
13 / 13 / 4
Регистрация: 17.11.2013
Сообщений: 39
01.12.2013, 02:10 5
C++
1
for( ;_str[i] != 0; i++)
1
244 / 155 / 48
Регистрация: 03.04.2013
Сообщений: 317
01.12.2013, 02:12 6
Инкримент изменяет значение самой строки. Функция для получения длянный строки с учетом нуля
C++
1
i=strlen(_str)-1;
1
13 / 13 / 4
Регистрация: 17.11.2013
Сообщений: 39
01.12.2013, 02:16 7
Зачем там #ifdef CHECKING?
И объявлен ли где-то этот макрос?

Добавлено через 2 минуты
+ если Вы заменяете значение символов на пробел, может стоит делать это явно?
Например:
C++
1
*(_str + _strt) = ' ';
0
15 / 15 / 7
Регистрация: 20.11.2013
Сообщений: 92
01.12.2013, 02:21  [ТС] 8
Да, действительно, инкремент изменяет саму строку. Заменил на *(_str + i) все заработало. Спасибо!

Добавлено через 2 минуты
Цитата Сообщение от caiman Посмотреть сообщение
Зачем там #ifdef CHECKING?
И объявлен ли где-то этот макрос?

Добавлено через 2 минуты
+ если Вы заменяете значение символов на пробел, может стоит делать это явно?
Например:
C++
1
*(_str + _strt) = ' ';
Да, макрос был не объявлен, когда цикл не работал, в общем там все в порядке.

А какая разница, если все равно переводится в код? Думаю, что так, что эдак, рез-тат одинаков.
0
13 / 13 / 4
Регистрация: 17.11.2013
Сообщений: 39
01.12.2013, 02:25 9
Так легче понимать, что происходит в коде. Машине все равно, но код-то люди читают.
0
01.12.2013, 02:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2013, 02:25
Помогаю со студенческими работами здесь

Переменная типа char обнуляется в конце каждого действия цикла
Здравствуйте, мне нужна Ваша помощь. есть одна программа : var c,l:char; s, n, f: integer; ...

Сохранение значения в массив после цикла
Как правильно сохранить значение после цикла в массив. После завершения цикла вывести этот массив...

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

После обновления таблицы значение в ComboBox обнуляется
Мне необходимо запись новую строку в таблицу . У меня 3 связанные между собой таблицы. Сначала я...


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

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