读书人

简单的trimleft()与trimright()解决方

发布时间: 2012-04-17 15:06:33 作者: rapoo

简单的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;} 

读书人网 >C++

热点推荐