|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/12169f1b97a20.html, оценка из 5, голосов 10
|