The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"возврат строки"
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "возврат строки" +/
Сообщение от Ghecko (ok), 28-Июл-05, 11:51 
>По поводу Segmentation fault - это наверняка трабла с указателями.
>
>По поводу слияния строк - а вы уверены, что надо Вам именно
>это? Если реч идет о многострочных командах, вроде как в Си,
>то говорить лучше о слиянии команд. А вообще вот как можно
>слить две строки:
>
>char* str1 = "bla-bla-bla\n";
>char* str2 = "mla-mla-mla\n";
>
>char* cat_string( char* s1, char* s2 )
>{
>   char* str = NULL;
>   int len;
>
>   // Вычислим необходимый размер памяти
>   len = strlen(s1);
>   len = len + strlen(s2) + 1;
>
>   str = malloc(len);
>   if( str )
>   {
>      // Это довольно опасный код. Если
>есть малейшая возможность,
>      // что во время вызова функции
>длина строки может увеличиться,
>      // следует использовать strncpy и strncat.
>
>      strcpy( str, s1 );
>      strcat( str, s2 );
>   }
>
>   return str;
>}
>
>А вообще, почему бы не считать файл одним куском, а не построчно?
>Тогда все, что надо - это выполнить разделение по разделителям команд.
>Можно потом загнать указатели на эти команды например в связанный список,
>или в массив, и потом работать с ним дальше.
Я бы маленькие поправки внес:
char* str1 = "bla-bla-bla\n";
char* str2 = "mla-mla-mla\n";

char* cat_string( char* s1, char* s2 )
{
   char* str = NULL;
   int len;

   // Вычислим необходимый размер памяти
   len = strlen(s1) + strlen(s2) + 1; /* Смысла писать в 2 строки не вижу */

   if(str = malloc(len) != NULL) /* так мне кажется более красиво просто */
   {
      // Это довольно опасный код. Если есть малейшая возможность,
      // что во время вызова функции длина строки может увеличиться,
      // следует использовать strncpy и strncat.
      strcpy( str, s1 );
      strcat( str, s2 );
   }

   return str;
}

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
возврат строки, lemegeton, 24-Июл-05, 09:09  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру