字符串处理函数:
//取出字符串两边的无用字符
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_len;
i++)
{
if((tmp[i]) != ' ' &&
(tmp[i]) != '\t')
{
break;
}
}
left = i;
if(strcmp(&tmp[left],"") == 0)
{
strncpy(dst,"",LINE_MAX);
return dst;
}
for(i = src_len - 1;
i >=0 ;
i--)
{
if((tmp[i]) != ' ' &&
(tmp[i]) != '\t')
{
break;
}
}
right = i;
memset(dst,0,LINE_MAX);
strncpy(dst,&tmp[left],right-left + 1);
return dst;
}
处理main中的参数:
while(*++argv != NULL && **argv == '-')
{
switch(*++*argv)
{
case 'a':
option_a = TRUE;
break;
case 'b':
option_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);
}
}
}
Copyleft ©2010