⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strutils.c

📁 源码漏洞检查
💻 C
字号:
/* strutils.C * John Viega * * Jan 28-29 2000 */#include "config.H"#include "fatal.H"/*  * Remove leading and trailing white space.  Deposit in buf. */int Strip(char *s, char *buf){  char *end = s + strlen(s);  char *start = s;  while(1)    {      switch(*start)	{	case ' ':	case '\t':	case '\v':	case '\f':	case '\n':	case '\r':	  start++;	  continue;	}      break;    }  while(end > start)    {      switch(*end)	{	case ' ':	case '\t':	case '\v':	case '\f':	case '\n':	case '\r':	  end--;	  continue;	}	  break;    }  for(char *p=start;p<end;p++)    {      *buf++ = *p;    }  *buf=0;  return end-start;}char *Wrap(char *str){  if(GetMSVSFormat()) {    char *res = new char[strlen(str)+1];    strcpy(res, str); // ITS4: ignore strcpy    return res;  }  int  width = GetOutputWidth();  size_t len = strlen(str) + 1; // length of string including null byte  // I think this is the right upper bound on the length of the result.  char *result = new char[len + 2*(len/width+strlen(NEWLINE)-1)+1];  if(!result)    OutOfMemory();  result[0] = '\0';  char *bgn = str;  char *ptr = bgn;  while(ptr < str + len)  {   int counter = 0;  char *last_space = 0;  while((counter < width) && (ptr < str + len))    {      if(*ptr=='\n') counter = 0;      if(*ptr==' ') last_space = ptr;      ptr++;      counter++;    }  if(*ptr == ' ') last_space = ptr;  if(last_space && (counter == width))    {      strncat(result, bgn, last_space-bgn);      strcat(result, NEWLINE);  /* ITS4: ignore */      bgn = last_space+1;      ptr = bgn;      continue;    }  if(ptr == str + len)    {      strncat(result, bgn, ptr-bgn);      break;    }  strncat(result, bgn, width-1);  strcat(result, "-");   strcat(result, NEWLINE); /* ITS4: ignore strcat */  bgn = --ptr;  continue;  }  return result;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -