Добавил(а) microsin
|
К сожалению, в стандартной библиотеке C нет функций для удаления из строки по краям неотображаемых символов (пробелов, табуляции и т. д.). В этой статье рассмотрены примеры кода для таких функций. Код взят со странички [1].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
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';
}
}
|
Еще набор функций, использующий оператор &&:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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) );
}
}
|
[Ссылки]
1. Programming Strings site:wilsonmar.com. |