| Предыдущая тема :: Следующая тема | 
	
	
		| Автор | Сообщение | 
	
		| Bad Lamer 
 
 
 Зарегистрирован: 23.09.2004
 Сообщения: 61
 
 
 | 
			
				|  Добавлено: Чт Сен 22 2005 13:45    Заголовок сообщения: массив -> строка |   |  
				| 
 |  
				| Вот бывает такое... забывается простейшее. Получаю массив байт с помощью recvfrom (winsock), там строка, только без нуля в конце... что б ее вывести, естесственно нужен ноль... как его туда вставить? Пишу на "си" |  | 
	
		| Вернуться к началу |  | 
	
		|  | 
	
		| Hovrino 
 
 
 Зарегистрирован: 06.03.2003
 Сообщения: 14
 Откуда: Химки
 
 | 
			
				|  Добавлено: Чт Сен 22 2005 16:01    Заголовок сообщения: |   |  
				| 
 |  
				| 1. realloc на 1 байт больше и дописываем ноль 2. слить в другой массив где место уже есть и дописать 0
 ИМХО: первый метод красивей
 |  | 
	
		| Вернуться к началу |  | 
	
		|  | 
	
		| Aragaer 
 
 
 Зарегистрирован: 28.03.2005
 Сообщения: 164
 
 
 | 
			
				|  Добавлено: Чт Сен 22 2005 23:24    Заголовок сообщения: |   |  
				| 
 |  
				| Делать recvfrom в буфер, который заведомо больше максимальной строки (хотя бы на 1). Добавлять \0 в байт, номер которого равен количеству полученных. _________________
 Open your eyes.
 And Awaken.
 |  | 
	
		| Вернуться к началу |  | 
	
		|  | 
	
		| Bad Lamer 
 
 
 Зарегистрирован: 23.09.2004
 Сообщения: 61
 
 
 | 
			
				|  Добавлено: Пт Сен 23 2005 21:10    Заголовок сообщения: |   |  
				| 
 |  
				| Спасибо люди |  | 
	
		| Вернуться к началу |  | 
	
		|  | 
	
		| Aragaer 
 
 
 Зарегистрирован: 28.03.2005
 Сообщения: 164
 
 
 | 
			
				|  Добавлено: Сб Сен 24 2005 01:59    Заголовок сообщения: |   |  
				| 
 |  
				| Кстати, еще один простой фокус - сначала создать массив большего размера, потом забить его весь нулями (через memset - самое оно), а потом читывать туда что угодно. Первый \0 и будет концом строки. _________________
 Open your eyes.
 And Awaken.
 |  | 
	
		| Вернуться к началу |  | 
	
		|  | 
	
		|  |