欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

项目开发中的字符串模型---两头堵模型

程序员文章站 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);就是另外再开辟一个内存空间。