Функция очистик строки
От: Corvin Украина  
Дата: 22.08.02 08:21
Оценка:
Привет всем.
Такой вопрос: у меня есть char buffer[LEN] и в нем какая-то строка, как мне его ПРАВИЛЬНО очистить? Первое, что пришло в голову это сделать char[0]=0, но будет ли это правильно? не произйдет ли при этом каких-нибудь катаклизмов в памяти и не возникнет ли такой возможности?
Спасибо
Re: Функция очистик строки
От: Nikto Россия  
Дата: 22.08.02 08:24
Оценка: 1 (1)
Здравствуйте Corvin, Вы писали:

C>Привет всем.

C>Такой вопрос: у меня есть char buffer[LEN] и в нем какая-то строка, как мне его ПРАВИЛЬНО очистить? Первое, что пришло в голову это сделать char[0]=0, но будет ли это правильно? не произйдет ли при этом каких-нибудь катаклизмов в памяти и не возникнет ли такой возможности?
C>Спасибо

Не произойдет.
Можно еще strcpy(buffer,"");
Re[2]: Функция очистик строки
От: Corvin Украина  
Дата: 22.08.02 08:26
Оценка:
Здравствуйте Nikto, Вы писали:

N>Не произойдет.

N>Можно еще strcpy(buffer,"");

спасиба.... И как это я про strcpy не вспомнил
Re[3]: Функция очистик строки
От: Libra Россия  
Дата: 22.08.02 08:28
Оценка:
Здравствуйте Corvin, Вы писали:

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


N>>Не произойдет.

N>>Можно еще strcpy(buffer,"");

C> спасиба.... И как это я про strcpy не вспомнил


можно еще и так

memset(buffer, 0, strlen(buffer));

Species come and go, but the earth stands forever fast...
Re: Функция очистик строки
От: Широков А.В. СССР  
Дата: 22.08.02 08:37
Оценка:
Здравствуйте Corvin, Вы писали:

C>Привет всем.

C>Такой вопрос: у меня есть char buffer[LEN] и в нем какая-то строка, как мне его ПРАВИЛЬНО очистить? Первое, что пришло в голову это сделать char[0]=0, но будет ли это правильно? не произйдет ли при этом каких-нибудь катаклизмов в памяти и не возникнет ли такой возможности?
C>Спасибо

Хотелось бы знать для чего Вы это делаете? А так на выбор
char buffer[LEN] = {0}; 
memset(buffer, 0, sizeof(char)*LEN); 
buffer[0] = 0;
Re[4]: Функция очистик строки
От: ~Yuriy~ www.inspira.by.ru
Дата: 26.08.02 06:33
Оценка:
Здравствуйте Libra, Вы писали:

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


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


N>>>Не произойдет.

N>>>Можно еще strcpy(buffer,"");

C>> спасиба.... И как это я про strcpy не вспомнил

Зачем тебе strcpy(buffer,"") , ты посмотри что он делает, целый
вызов функции на обнуление первого байта ..., он не обнуляет
весь буфер. Используй то что ниже советуют, а если буфер не динамический
то еще лучше

memset(buffer, 0, sizeof(buffer));


L>можно еще и так


L>
L>memset(buffer, 0, strlen(buffer));
L>

L>
Re[5]: Функция очистик строки
От: Sasparella США  
Дата: 26.08.02 11:34
Оценка:
Я всегда писал так


*buffer = '\0';
Re[6]: Функция очистик строки
От: Nikto Россия  
Дата: 27.08.02 03:09
Оценка:
Здравствуйте Sasparella, Вы писали:


S>Я всегда писал так



S>
S>*buffer = '\0';
S>


Этот вариант ИМХО ничем не отличается от изначально приведенного автором:
buffer[0]='\0';
Re[2]: Функция очистик строки
От: Rand1  
Дата: 29.08.02 13:50
Оценка:
Здравствуйте Широков А.В., Вы писали:

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


C>>Привет всем.

C>>Такой вопрос: у меня есть char buffer[LEN] и в нем какая-то строка, как мне его ПРАВИЛЬНО очистить? Первое, что пришло в голову это сделать char[0]=0, но будет ли это правильно? не произйдет ли при этом каких-нибудь катаклизмов в памяти и не возникнет ли такой возможности?
C>>Спасибо

ША>Хотелось бы знать для чего Вы это делаете? А так на выбор

ША>
ША>char buffer[LEN] = {0}; 
ША>memset(buffer, 0, sizeof(char)*LEN); 
ША>buffer[0] = 0;
ША>

В копилку:
ZeroMemory(buffer,sizeof(buffer))
Re[3]: Функция очистик строки
От: Анатолий СССР  
Дата: 29.08.02 13:59
Оценка:
Здравствуйте Rand1, Вы писали:

R>В копилку:

R>ZeroMemory(buffer,sizeof(buffer))

Это откуда этот зверь (прошу меня простить за невежество)?
Re[4]: Функция очистик строки
От: Rand1  
Дата: 29.08.02 14:01
Оценка:
Здравствуйте Анатолий, Вы писали:

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


R>>В копилку:

R>>ZeroMemory(buffer,sizeof(buffer))

А>Это откуда этот зверь (прошу меня простить за невежество)?

Странно что вы не знакомы с этим зверем:

ZeroMemory
The ZeroMemory function fills a block of memory with zeros.

VOID ZeroMemory(
PVOID Destination, // memory block
SIZE_T Length // size of memory block
);
Parameters
Destination
[in] Pointer to the starting address of the block of memory to fill with zeros.
Length
[in] Size, in bytes, of the block of memory to fill with zeros.
Return Values
This function has no return value.
Re[4]: Функция очистик строки
От: Bell Россия  
Дата: 29.08.02 14:02
Оценка:
Здравствуйте Анатолий, Вы писали:

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


R>>В копилку:

R>>ZeroMemory(buffer,sizeof(buffer))

А>Это откуда этот зверь (прошу меня простить за невежество)?


не забываем время от времени заглядывать в MSDN


ZeroMemory
The ZeroMemory function fills a block of memory with zeros. 

VOID ZeroMemory(
  PVOID Destination, 
                 // address of block to fill with zeros
  DWORD Length   // size, in bytes, of block to fill with zeros
);
 Parameters
Destination 
Pointer to the starting address of the block of memory to fill with zeros. 
Length 
Specifies the size, in bytes, of the block of memory to fill with zeros. 
Return Values
This function has no return value. 

QuickInfo
  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in winbase.h.

See Also
Memory Management Overview, Memory Management Functions, CopyMemory, CopyMemoryVlm, FillMemory, FillMemoryVlm, MoveMemory, MoveMemoryVlm, ZeroMemoryVlm
Любите книгу — источник знаний (с) М.Горький
Re[5]: Функция очистик строки
От: Alex Smirnov Россия  
Дата: 29.08.02 14:06
Оценка:
Здравствуйте Rand1, Вы писали:

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


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


R>>>В копилку:

R>>>ZeroMemory(buffer,sizeof(buffer))

А>>Это откуда этот зверь (прошу меня простить за невежество)?

R>Странно что вы не знакомы с этим зверем:

R>ZeroMemory

R>The ZeroMemory function fills a block of memory with zeros.

R>VOID ZeroMemory(

R> PVOID Destination, // memory block
R> SIZE_T Length // size of memory block
R>);
R>Parameters
R>Destination
R>[in] Pointer to the starting address of the block of memory to fill with zeros.
R>Length
R>[in] Size, in bytes, of the block of memory to fill with zeros.
R>Return Values
R>This function has no return value.

Да неее...Просто это форум по C++ а не по WinAPI :))
Alex
Re[5]: Функция очистик строки
От: Анатолий СССР  
Дата: 29.08.02 14:23
Оценка:
Здравствуйте Rand1, Вы писали:

R>ZeroMemory

R>The ZeroMemory function fills a block of memory with zeros.

Спасибо, за разъяснение, но по роду своей работы, я пишу переносимые решения (Windows, xNIX, QNX), посему азов Windows API не знаю. Конечно, надо бы это знать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.