字符串处理函数:

//取出字符串两边的无用字符
char *get_strip(const char *src,char *dst)
{
    int i = 0;
    int left = 0;
    int right = 0;

    size_t src_len = strlen(src);
    char tmp[LINE_MAX];

    if(src_len > LINE_MAX)
    {
        set_error(ERROR_CHAR_TOO_MANY);
        return NULL;
    }

    strncpy(tmp,src,LINE_MAX);

    for(i = 0; 
        i < src&#95;len; 
        i++)
    {
        if((tmp[i]) != ' ' &&
           (tmp[i]) != '\t')
        {
            break;
        }
    }
    left = i;

    if(strcmp(&tmp[left],"") == 0)
    {
        strncpy(dst,"",LINE&#95;MAX);
        return dst;
    }

    for(i = src&#95;len - 1; 
        i >=0 ; 
        i--)
    {
        if((tmp[i]) != ' ' &&
           (tmp[i]) != '\t')
        {
            break;
        }
    }
    right = i;

    memset(dst,0,LINE&#95;MAX);
    strncpy(dst,&tmp[left],right-left + 1);

    return dst;
}

处理main中的参数:

while(*++argv != NULL && **argv == '-')
{
    switch(*++*argv)
    {
        case 'a':
            option&#95;a = TRUE;
            break;
        case 'b':
            option&#95;b = TRUE;
            break;
    }
}

strtrim:

char *strtrim(char *s)
{
    char *p = NULL,*tmp = s;
    while(*s == ' ') s++;
    p = s;
    while(*tmp != '\0') tmp++;
    for(tmp--;isspace(*tmp);tmp--);
    *tmp = '\0';
    return p;
}

判断是否中文字符:

//这个是库函数,自己实现了下:
int isalpha2(int ch) 
{
    return (unsigned int)((ch | 0x20) - 'a') < 26u;
}

int main()
{
    int c = 0;
    int i = 0;
    char *text = "asdf你好";

    for(c = text[i]; text[i] != '\0'; i++, c = text[i])
    {
        if(isalpha(c))
        {
            printf("%c\n",c);
        }
    }
}
Last Modified by shiweifu, at 2010-12-8 17:24

Top of Page