Написал microsin
|
16.10.2009 |
К сожалению, в стандартной библиотеке C нет функций для удаления из строки по краям неотображаемых символов (пробелов, табуляции и т. д.). В этой статье рассмотрены примеры кода для таких функций. Код взят со странички http://www.wilsonmar.com/1strings.htm.
void trim(char *s)
{
// удаляем пробелы и табы с начала строки:
int i=0,j;
while((s[i]==' ')||(s[i]=='\t'))
{
i++;
}
if(i>0)
{
for(j=0;j<strlen(s);j++)
{
s[j]=s[j+i];
}
s[j]='\0';
}
// удаляем пробелы и табы с конца строки:
i=strlen(s)-1;
while((s[i]==' ')||(s[i]=='\t'))
{
i--;
}
if(i<(strlen(s)-1))
{
s[i+1]='\0';
}
}
// Еще набор функций, использующий оператор &&:
void rtrim( char * string, char * trim )
{
// делаем трим справа
int i;
for( i = strlen (string) - 1;
i >= 0 && strchr (trim, string[i]) != NULL;
i-- )
{
// переставляем терминатор строки
string[i] = '\0';
}
}
void ltrim( char * string, char * trim )
{
// делаем трим слева
while ( string[0] != '\0' && strchr ( trim, string[0] ) != NULL )
{
memmove( &string[0], &string[1], strlen(string) );
}
}
|
Последнее обновление ( 16.10.2009 )
|
Комментарии
2015-05-2013:18:22 Благодарю!
2012-06-2809:20:51 Спасибо!
2011-09-0807:10:26