for(int i(0); i<(MAS_SIZE-1); i++)
massive = "";//(или 0, или еще чего захочешь)
massive[MAS_SIZE-1] = "/0";
Очистка символьного массива + Подобные программные фишки С++
Вопрос:
Как после заполнения символьного массива(указателя!) в цикле, при некоторых условиях его очищать и опять в этом же цикле заполнять? Т.е. производить эту операцию многократно?
Сделайте цикл while (с постусловием, например), а в теле цикла вызывайте методы заполнения и очистки массива.
Выделяю память под указатель на символьный массив, заполняю и мне нужно потом его очистить, т.е. если в цикле заполненный массив - mas содержит часть строки - "Ва" + символ нуля в конце. Его, по идее, можно поэлементно в цикле затереть присвоением последовательно текущему элементу значения следующего.
В связи с этим я хочу узнать - можно-ли очистить массив каким-нибудь иным способом не трогая последний нуль? Если есть какие-то функции самостоятельно затирающие символьный массив, то подскажите пожалуйста!
Цитата: Dr.CODE
Выделяю память под указатель на символьный массив, заполняю и мне нужно потом его очистить, т.е. если в цикле заполненный массив - mas содержит часть строки - "Ва" + символ нуля в конце. Его, по идее, можно поэлементно в цикле затереть присвоением последовательно текущему элементу значения следующего.
Признавайтесь, что курите )
Цитата: Dr.CODE
В связи с этим я хочу узнать - можно-ли очистить массив каким-нибудь иным способом не трогая последний нуль? Если есть какие-то функции самостоятельно затирающие символьный массив, то подскажите пожалуйста!
Ничего не понял про последний ноль, но поможет вам memset
Цитата: Dr.CODE
Выделяю память под указатель на символьный массив,
Вы выделяете память под указатель или для массива? Это разные вещи.
Цитата: Dr.CODE
заполняю и мне нужно потом его очистить, т.е. если в цикле заполненный массив - mas содержит часть строки - "Ва" + символ нуля в конце. Его, по идее, можно поэлементно в цикле затереть присвоением последовательно текущему элементу значения следующего.
Это вы где так научились массивы обнулять? :) Да и не обнуление это.
Код:
и собственно где тут вообще так называемые "программые фишки"? все банально до не могу.
К тому же зачем вообще очищать? если ты его будешь повторно заполнять, то просто затрешь предыдущую запись.
Цитата:
Признавайтесь, что курите )
Нет, мало сплю ))
Цитата:
Вы выделяете память под указатель или для массива? Это разные вещи.
Выделяю память под указатель на символьный массив. Указатель на символьный массив - это единая фраза! Не понял что вас смутило..
Цитата:
Это вы где так научились массивы обнулять? Да и не обнуление это.
Вот очистка о которой я говорил:
Код:
while (kol_symbol_in_slog != 0)
{
// Очистка символьного массива - Main_Render_2 для записи новых значений
for (k = 0; k < kol_symbol_in_slog; k++) {
Main_Render_2[k] = Main_Render_2[k+1];
}
kol_symbol_in_slog--;
// Очистка символьного массива - Main_Render_2 для записи новых значений
}
{
// Очистка символьного массива - Main_Render_2 для записи новых значений
for (k = 0; k < kol_symbol_in_slog; k++) {
Main_Render_2[k] = Main_Render_2[k+1];
}
kol_symbol_in_slog--;
// Очистка символьного массива - Main_Render_2 для записи новых значений
}
А я спрашиваю о том, есть ли в С++ функция, которая производит такое же действие? Про зануление я и правда ошибся! Извиняюсь! ))
Цитата: Dr.CODE
Вот очистка о которой я говорил:
Код:
while (kol_symbol_in_slog != 0)
{
// Очистка символьного массива - Main_Render_2 для записи новых значений
for (k = 0; k < kol_symbol_in_slog; k++) {
Main_Render_2[k] = Main_Render_2[k+1];
}
kol_symbol_in_slog--;
// Очистка символьного массива - Main_Render_2 для записи новых значений
}
{
// Очистка символьного массива - Main_Render_2 для записи новых значений
for (k = 0; k < kol_symbol_in_slog; k++) {
Main_Render_2[k] = Main_Render_2[k+1];
}
kol_symbol_in_slog--;
// Очистка символьного массива - Main_Render_2 для записи новых значений
}
До этого кода сами додумались? :D Ответ в теме уже был. memset вас спасет.
#include <memory.h>
memset(Main_Render_2,Main_Render_2[kol_symbol_in_slog-1],kol_symbol_in_slog);
Цитата:
До этого кода сами додумались?
nikitozz, я даже не додумывался, а просто этот код во сне увидел! =)
Цитата: Dr.CODE
nikitozz, я даже не додумывался, а просто этот код во сне увидел! =)
Менделеев нервно курит в сторонке!
your_str[0] = 0;
И не париться с обнулением! А ноль в конце останется на своём месте!
Я бы Вам посоветовал сначала пройти полный курс С++ по Дейтелу!