简单的trimleft()与trimright()
高手帮帮忙,写个简单的trimleft函数和trimright函数,一定要分别实现删掉左边空格和'/t',右边空格和'/t',如果可以的话,最好能实现从字符串中删除指定左右两边子字符串,如trimleft(char * str1,char *str2)删除str1中的str2.
[解决办法]
#include <stdio.h>
#include <string.h>
int trimleft(char* s)
{
if(! s) return -1;
char* p = s;
while(*p && ((' ' == *p)
[解决办法]
('\t' == *p)))
p ++;
if(*p)
strcpy(s, p);
else
*s = 0;
return 0;
}
int trimright(char* s)
{
if(! s) return -1;
char* p = s + strlen(s) - 1;
while(*p && (p - s) && ((' ' == *p)
[解决办法]
('\t' == *p)))
p --;
*(p + 1) = 0;
if((' ' == *p)
[解决办法]
('\t' == *p))
*p = 0;
return 0;
}
int main(void)
{
char s1[] = " \t\tabcdefg 1234567 \t \t ";
char s2[] = " \t\t \t\t \t";
printf("s1(%d): %s\n", strlen(s1), s1);
trimleft(s1);
printf("s1(%d): %s\n", strlen(s1), s1);
trimright(s1);
printf("s1(%d): %s\n", strlen(s1), s1);
printf("s2(%d): %s\n", strlen(s2), s2);
trimleft(s2);
printf("s2(%d): %s\n", strlen(s2), s2);
trimright(s2);
printf("s2(%d): %s\n", strlen(s2), s2);
getchar();
return 0;
}
s1(29): abcdefg 1234567
s1(24): abcdefg 1234567
s1(16): abcdefg 1234567
s2(13):
s2(0):
s2(0):