简单的trimleft()与trimright()
高手帮帮忙,写个简单的trimleft函数和trimright函数,一定要分别实现删掉左边空格和'/t',右边空格和'/t',如果可以的话,最好能实现从字符串中删除指定左右两边子字符串,如trimleft(char * str1,char *str2)删除str1中的str2.
[解决办法]
- C/C++ code
#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;}