项目开发中的字符串模型---两头堵模型
程序员文章站
2022-07-14 18:34:07
...
这个模型就是找两个变量,一个从字符串的开始遍历,另一个从字符串的末尾开始遍历,最后得到中间想要的信息。
示例1:
有一个字符串开头和结尾有N个空格,str=" 22222fffffff44444444kkkkkkkkkkk "
去掉前后的空格,并返回一个新的字符串
int trimSpace(char *inbuf,char *outbuf)
用两头堵模型完成这个操作
int trimSpace(char *inbuf,char *outbuf)
{
char *myinbuf = inbuf;
// char *myoutbuf = outbuf;
int i = 0;
int j = strlen(myinbuf)-1;
int strL;
while (isspace(myinbuf[i])&& myinbuf[i]!='\0')
{
i++;
}
while (isspace(myinbuf[j]))
{
j--;
}
strL = j - i + 1;
strncpy(myinbuf,myinbuf + i, strL);
*(myinbuf + strL) = '\0';
}
int main()
{
char str[100] = " 22222fffffff44444444kkkkkkkkkkk ";
char buf[100];
trimSpace(str, buf);
printf("%s", str);
system("pause");
return 1;
}
这个函数不用开辟新的内存空间,如果把子函数trimSpace中换成strncpy(myoutbuf,myinbuf + i, strL);就是另外再开辟一个内存空间。
下一篇: 两头堵模型