Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Andy Shevchenko                      2:465/192      24 Dec 2002  00:08:50
 To : Vladimir Bormotov
 Subject : Re: Обрезать начальные и конечные пробелы в строке...
 -------------------------------------------------------------------------------- 
 
 .RFC-X-Complaints-To: news@serv.smile.org.ua
 .RFC-NNTP-Posting-Date: 23 Dec 2002 21:08:50 GMT
 Hi Vladimir Bormotov! 
 
 On Sun, 22 Dec 02 15:04:20 +0200; Vladimir Bormotov <bor@vb.dn.ua> wrote about
 'Re: Обрезать начальные и конечные пробелы в строке...':
  VB>  Hужно просканить строку с начала вперед, найти указатель на первый
  VB>  непробельный символа. Потом просканить строку с конца назад, и
  VB>  найти указатель на первый непробельный (с конца).
  VB>  
  VB>  А далее, strncat, начиная с разницы указателей начал строк (это будет
  VB>  индекс начала строки), и длиной, которая будет разницой указателей
  VB>  найденых символов.
 
 Алгоритм правильный.
 
  VB>  Внимание, правильынй ответ:
 
 Hет. Правильный, но неполноценный.  
 
  VB> === cut ===
  VB> #include <stdio.h>
  VB> #include <string.h>
 
 #include <wchar.h>
 
  VB> // ========================================================
  VB> int main()
  VB> {
  VB>   char str1[] = "    Просто   пример текстовой     строки    ";
 
 wchar_t
 
  VB>   char str2[sizeof(str1)];
 
 wchar_t
 
  VB>   char* pstr1;
  VB>   char* pstr2;
 
 Аналогично...
 
  VB>   int idx;
  VB>   int len_str1;
 
 Тут можно согласиться
 
  VB>   memset(str2, 0, sizeof(str2));
 
  VB>   len_str1 = strlen(str1);
 
 wcslen()
 
  VB>   for (idx = 0, pstr1 = str1; idx <= len_str1; idx++, pstr1++)
  VB>       if (*pstr1 != ' ') break;
 
  VB>   printf("first non space idx: %d\n", pstr1 - str1);
 
  VB>   for (idx = len_str1-1, pstr2 = str1+len_str1-1; idx >= 0; idx--,
  VB>  pstr2--)
  VB>       if (*pstr2 != ' ') break;
 
  VB>   printf("last non space idx: %d\n", pstr2 - str1);
 
  VB>   strncat(str2, pstr1, pstr2 - pstr1);
 
 wcs*
 
  VB>   printf(" in:\"%s\"\nout:\"%s\"\n", str1, str2);
 
  VB>   return 0;
  VB> }
  VB> === cut ===
 
  VB>  эхх...
 
 Вот-вот.
 
 -- 
 With best regards,
 Andy Shevchenko.      mailto: andy@smile.org.ua
 --- slrn/0.9.7.4-asp (Linux)
  * Origin: Smile Club (2:465/192@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Обрезать начальные и конечные пробелы в строке...   Andy Shevchenko   24 Dec 2002 00:08:50 
Архивное /ru.linux/12169f1b97a20.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional