Перейти к содержимому

Как обнулить переменную char c

  • автор:

Как обнулить переменную char c

🙂 Привет! Глупый и простой вопрос возник. Как мне очистить массив типа char?
Я делал так:

char Massiv[100];
strcpy(Massiv, «»);

Но так не удобно, да и сам метод примитивен для очистки. Подскажите, как очищать легко и быстро?

И ещё! Не хчу тему создовать. Кто знает, где можно скачать видеоклип Глюк`oza и песня Невеста. Желательно чтоб размер экрана былы ХОРОШИМ и весь файл НЕ занимал менее 5 Мб. Лучше пусть он занимает мегобайт 20, я его скачать хочу. 8)

Сообщ. #2 , 27.05.03, 14:55

Рейтинг (т): 640
Цитата Владислав, 27.05.03, 18:46:23

Привет! Глупый и простой вопрос возник. Как мне очистить массив типа char?
Я делал так:

char Massiv[100];
strcpy(Massiv, «»);

Но так не удобно, да и сам метод примитивен для очистки. Подскажите, как очищать легко и быстро?

Не совсем понятен вопрос. Нужно обнулить весь массив или сделать строку нулевой длины?
Если первое — то:
memset
FillMemory
ZeroMemory
Если второе — то:
Massiv[0]=0;

Сообщ. #3 , 27.05.03, 15:12
Unregistered
Цитата trainer, 27.05.03, 18:55:26

Не совсем понятен вопрос. Нужно обнулить весь массив или сделать строку нулевой длины?
Если первое — то:
memset
FillMemory
ZeroMemory
Если второе — то:
Massiv[0]=0;

Спасибо! Надо только обнулить весь массив. Приведи примерчик. Я думаю это тебе не составит труда.

ЛЮДИ. ДРУГОЙ ВОПРОС.
Я создал свой КАДР, т.е. Frame1 объект. Как мне его сохранить так, чтоб я его мог многократно загружать из вкладки с компонентами. Саму вкладку я знаю как создавать. Но как туда положить мой Frame для многократного использования?

Сообщ. #4 , 27.05.03, 16:45

Рейтинг (т): 640

Варианты:
1) memset(Massiv,0,100);
2) FillMemory(Massiv,100,0);
3) ZeroMemory(Massiv,100);
Прим.: варианты 2 и 3 — только под Windows

Сообщение отредактировано: trainer — 28.05.03, 05:18
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:

  • Предыдущая тема
  • Borland C++ Builder/Turbo C++ Explorer
  • Следующая тема

Как удалить символ char из его же массива

Всем привет. Есть такая задача : В Входном файле дается никнейм, нам надо, чтобы в таблице сортировки по имени этот ник стоял как можно ниже, притом удалить можно только один символ. Мой код:

ifstream in("input.txt"); ofstream out("output.txt"); string str; char ch[str.size()],temp; in >> str; strcpy(ch, str.c_str()); temp=ch[0]; for(int i=0;i temp) < delete ch[i]; break; >else temp=ch[i]; > string str2=ch; out  

Мы смотрим, если второй символ ниже в алфавите первого, мы первый удаляем Компилятор указывает на одну единственную ошибку - delete ch[i]; Eroor:type 'char' argument given to 'delete', expected pointer Как быть?

Отслеживать
задан 21 сен 2018 в 20:01
Влад Ковальчук Влад Ковальчук
73 2 2 серебряных знака 8 8 бронзовых знаков

Ну во-первых char ch[str.size()] массивы с автоматическим хранением не являются стандартной фичей языка. Во-вторых delete ch[i]; некорректно, так как аргумент не является указателем, выделенным при помощи new . Под "удалить" тут явно понимается переместить символы после i -го на один назад.

21 сен 2018 в 20:15
ясно сказано, что ожидается указатель. Вы пытетесь удалять значение
21 сен 2018 в 20:16
приведите пример входных и выходных данных, а то ничего не понятно
21 сен 2018 в 20:29
@Hovsepyan smith-smth
21 сен 2018 в 20:33
практически удаляете самый меньший символ в строке?
21 сен 2018 в 20:36

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

delete не из той оперы.

Ваше delete ch[i]; следует развернуть в

for(int j = i+1; ch[j-1] = ch[j]; ++j); 

Или воспользоваться memmove() .

Отслеживать
ответ дан 22 сен 2018 в 3:44
219k 15 15 золотых знаков 119 119 серебряных знаков 230 230 бронзовых знаков

Слушайте, а что вы сдесь вообще делаете? Вот у вас есть некая переменная str, которая, как можно заключить из метода c_str() имеет тип std::string. Так зачем вы используете массив char? Не поймите меня неверно, я люблю Си, но вот зачем использовать функции из cstring в перемешку с классом string? Тем более что вы это делаете не верно. И раз уж у вас вопрос с меткой с++, то порекомендую сделать все через string (и правильно). Как то так:

ifstream in("input.txt"); ofstream out("output.txt"); std::string str; // сдесь вы вообще брали у str size, который равен 0 на данный момент in >> str; // две строки сдесь вообще не нужны - у вас дублирование данных // далее вы в вопросе указали что нужно удалить первый символ, если он меньше второго, но почему то обходите всю строку, вместо того, чтобы сделать так: if (str[0] < str[1]) str.erase(str.begin()); else str.erase(1); out  

Обратите внимание, что не только код сократился, но и количество переменных тоже сократилось. Ровно до одной.

Как обнулить переменную char c

Нравится ресурс?

Правила раздела Visual C++ / MFC / WTL (далее Раздела)

1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Как обнулить переменную char c

Простите за примитивный вопрос, но как очитить перменную типа char ?
Пробовал по-разному извращаться, но не получается

Re: Очистить переменную char

От: Анатолий Широков
Дата: 19.08.04 12:18
Оценка: 3 (1) +1

Здравствуйте, trustno1, Вы писали:

T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается

А можно посмотреть вариаты?

Re: Очистить переменную char

От: Glоbus
Дата: 19.08.04 12:18
Оценка:

Здравствуйте, trustno1, Вы писали:

T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается

А че значит очистить. можно вызвать char() — тогда туда будет записано некоторое дефолтное "нулевое" значение.

Удачи тебе, браток!
Re: Очистить переменную char

От: ChipSet2k http://merlinko.com
Дата: 19.08.04 12:19
Оценка:

Здравствуйте, trustno1, Вы писали:

T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается
char с = '\0';

"Всё что не убивает нас, делает нас сильнее. "
Re: Очистить переменную char

От: _nn_ www.nemerleweb.com
Дата: 19.08.04 12:23
Оценка:

Здравствуйте, trustno1, Вы писали:

T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается
А что означает очистить ?

Re[2]: Очистить переменную char

От: trustno1
Дата: 19.08.04 12:33
Оценка:

Здравствуйте, Анатолий Широков, Вы писали:

АШ>Здравствуйте, trustno1, Вы писали:

T>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>Пробовал по-разному извращаться, но не получается

АШ>А можно посмотреть вариаты?

1. varb = '\0';
2. memset(varb,0,sizeof(varb));
3. varb = "";

Re[2]: Очистить переменную char

От: trustno1
Дата: 19.08.04 12:35
Оценка:

Здравствуйте, Glоbus, Вы писали:

G>Здравствуйте, trustno1, Вы писали:

T>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>Пробовал по-разному извращаться, но не получается

G>А че значит очистить. можно вызвать char() — тогда туда будет записано некоторое дефолтное "нулевое" значение.

не выходит, пишет, что не может переконвертить чар[1] в чар[100]

Re[3]: Очистить переменную char

От: _nn_ www.nemerleweb.com
Дата: 19.08.04 12:35
Оценка:

Здравствуйте, trustno1, Вы писали:

T>Здравствуйте, Анатолий Широков, Вы писали:

АШ>>Здравствуйте, trustno1, Вы писали:

T>>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>>Пробовал по-разному извращаться, но не получается

АШ>>А можно посмотреть вариаты?

T>char[100] varb;

T>1. varb = '\0';
T>2. memset(varb,0,sizeof(varb));
T>3. varb = "";

char varb[100]=""; // или char varb[100]; strcpy(varb,""); // или char varb[100]; varb[0]=0;

P.S.
Вам стоит прочитать про массивы и строки в С.

Re: Очистить переменную char

От: BArt
Дата: 19.08.04 12:36
Оценка:

Здравствуйте, trustno1, Вы писали:

T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается

Предлагаю совершить над ней заклинание exorcism, для этого нужно сказать пару матерных слов в ее адрес, потом можно считать ее чистой. А в коде писать ничего не нужно.

P.S. Извините за юмор.

Re[2]: Очистить переменную char

От: _nn_ www.nemerleweb.com
Дата: 19.08.04 12:37
Оценка:

Здравствуйте, BArt, Вы писали:

BA>Здравствуйте, trustno1, Вы писали:

T>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>Пробовал по-разному извращаться, но не получается

BA>Предлагаю совершить над ней заклинание exorcism, для этого нужно сказать пару матерных слов в ее адрес,
Вроде этого

Автор:
Дата: 02.06.04

?
BA>потом можно считать ее чистой. А в коде писать ничего не нужно.

BA>P.S. Извините за юмор.

Re: Очистить переменную char

От: Apapa
Дата: 19.08.04 12:38
Оценка:

Здравствуйте, trustno1, Вы писали:

T>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>Пробовал по-разному извращаться, но не получается

Переменная типа char — это число размеров в один байт.
Т.к. это просто число, то оно ОБЯЗАНО принимать какое-то значение либо от 0 до 255 (если по-умолчанию char беззнаковый), либо от -128 до 128 (если знаковый).

"Очистить переменную char" само по себе лишино смысла.
Другое дело, если это некоторая необходимость в программе. Т.е. требуется, чтобы в определенной ситуации данная переменная была "помечена" как чистая.
В этом случае можно поступить двояко. Либо выделить специальное значение, которое будет обозначять очищенную переменную (например, 0x80 == -128 для знакового char), либо дополнить char до большего типа или до структуры, где кроме самого значения хранить еще признак того, инициализирована переменная или нет (может Вы, например, так ошибки ищете).

В любом случае, следует пояснить для чего Вам это нужно.

Здесь могла бы быть Ваша реклама!
Re[3]: Очистить переменную char

От: Chez
Дата: 19.08.04 12:40
Оценка:

Здравствуйте, trustno1, Вы писали:

T>Здравствуйте, Анатолий Широков, Вы писали:

АШ>>Здравствуйте, trustno1, Вы писали:

T>>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>>Пробовал по-разному извращаться, но не получается

АШ>>А можно посмотреть вариаты?

T>char[100] varb;

T>1. varb = '\0';
T>2. memset(varb,0,sizeof(varb));
T>3. varb = "";
4. VariantClear()

А если серьезно

varb[0]='\0'; // только строчку char[100] varb; // надо заменить на char varb[100];

Chez, ICQ# 161095094
Re[4]: Очистить переменную char

От: Chez
Дата: 19.08.04 12:43
Оценка:

Здравствуйте, _nn_, Вы писали:

Плохо думать, еще хуже думать что ты думаешь , но самое хучшее когда кто-то думает что ты думаешь.

Хуже всего думать о чём же ты думаешь.
Chez, ICQ# 161095094
Re[4]: Очистить переменную char

От: trustno1
Дата: 19.08.04 12:46
Оценка:

Здравствуйте, _nn_, Вы писали:

__>Здравствуйте, trustno1, Вы писали:

T>>Здравствуйте, Анатолий Широков, Вы писали:

АШ>>>Здравствуйте, trustno1, Вы писали:

T>>>>Простите за примитивный вопрос, но как очитить перменную типа char ?
T>>>>Пробовал по-разному извращаться, но не получается

АШ>>>А можно посмотреть вариаты?

T>>char[100] varb;

T>>1. varb = '\0';
T>>2. memset(varb,0,sizeof(varb));
T>>3. varb = "";

__>А вот так :
__>

__>char varb[100]=""; __>// или __>char varb[100]; __>strcpy(varb,""); __>// или __>char varb[100]; __>varb[0]=0; __>

__>P.S.
__>Вам стоит прочитать про массивы и строки в С.

спасибо, разобрался
да, читать надо

Re[5]: Очистить переменную char

От: _nn_ www.nemerleweb.com
Дата: 19.08.04 12:58
Оценка:

Здравствуйте, Chez, Вы писали:

C>Здравствуйте, _nn_, Вы писали:

C>

C>Плохо думать, еще хуже думать что ты думаешь , но самое хучшее когда кто-то думает что ты думаешь.

C>Хуже всего думать о чём же ты думаешь.

Я вас не понял
То что я написал как раз и нужно было.

В чем выражается ваша притензия ?

Re[6]: Очистить переменную char

От: Chez
Дата: 19.08.04 13:07
Оценка:

Здравствуйте, _nn_, Вы писали:

__>Здравствуйте, Chez, Вы писали:

C>>Здравствуйте, _nn_, Вы писали:

C>>

C>>Плохо думать, еще хуже думать что ты думаешь , но самое хучшее когда кто-то думает что ты думаешь.

C>>Хуже всего думать о чём же ты думаешь.

__>Я вас не понял
__>То что я написал как раз и нужно было.
__>В чем выражается ваша притензия ?
Никакой претензии.
Это мой комментарий к Вашему футеру в топиках. Очень он мне понравился.

P.s. Если вы восприняли на свой счёт, то я даже не пробовал думать, о чём же ты думаешь, поэтому не знаю, плохо это, или хорошо.

Chez, ICQ# 161095094
Re[7]: Очистить переменную char

От: _nn_ www.nemerleweb.com
Дата: 19.08.04 13:12
Оценка:

Здравствуйте, Chez, Вы писали:

C>Здравствуйте, _nn_, Вы писали:

__>>Здравствуйте, Chez, Вы писали:

C>>>Здравствуйте, _nn_, Вы писали:

C>>>

C>>>Плохо думать, еще хуже думать что ты думаешь , но самое хучшее когда кто-то думает что ты думаешь.

C>>>Хуже всего думать о чём же ты думаешь.

__>>Я вас не понял
__>>То что я написал как раз и нужно было.
__>>В чем выражается ваша притензия ?
C>Никакой претензии.
C>Это мой комментарий к Вашему футеру в топиках. Очень он мне понравился.
Спасибо

C>P.s. Если вы восприняли на свой счёт, то я даже не пробовал думать, о чём же ты думаешь, поэтому не знаю, плохо это, или хорошо.

Ну тогда прошу прощения, я вас не понял правильно

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *