C语言删除字符串首尾非可见字符

来源:互联网 发布:csbte武器数据修改 编辑:程序博客网 时间:2024/06/05 10:16

/**
 * 功    能:去除字符串左右两边不可见字符。
 *           注:不可见字符为0x00~0x20的字符,即空格符以下的字符。
 * 输入参数: char *str 输入字符串
 *           int is_copy : 0 直接修改str;1 生成一个新字符串
 * 输出参数:当0==is_copy时,char *str 为去除左右不可见字符后的字符串
 * 返 回 值:char * 去除左右不可见字符后后的字符串/NULL 任何错误
 * 维护记录:
*/
char * str_trim(char* str, int is_copy);

 

 

char *str_trim(char *str, int is_copy){
 int len, i, j;
 len = strlen(str);
 char *tmp = (char*)malloc(strlen(str) + 1);
 switch(is_copy)
 {
  case 0:
     while(str[len - 1] <= 0x20)
     {
       len--;
     }
     str[len] = '/0';
     i = 0;
     while(str[i] <= 0x20)
     {
      i++;
     }
     for(j = 0; j <= len - i; j++)
     {
      str[j] = str[j + i];
     }
     return str;   
  case 1:
   for(i = 0; i < len + 1; i++)
   {
     tmp[i] = str[i];
   }
   while(tmp[len - 1] <= 0x20)
   {
    len--;
   }
   tmp[len] = '/0';
   i = 0;
   while(tmp[i] <= 0x20)
   {
    i++;
   }
   for(j = 0; j < len - i; j++)
   {
    tmp[j] = tmp[j + i];
   }
   return tmp;
   
   default:
    return NULL;
 }

}

欢迎访问:乐园www.ly8.co

原创粉丝点击