C++第17周项目2——用指针玩字符串(6)去多余空格

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565

【项目2-用指针玩字符串】神奇的指针哟,指向整型的指针int *p1,可以操作整型数组int a[];指向字符型的指针char *p2,可以操作字符数组(字符串)char str[];指向指针的指针可以操作二维数组。更灵活的是,在函数的传递中,指针、数组名在一定程度上可以互换。
  本项目试图通过编制操作字符串的函数,实现字符串的操作。

  请编制函数,其功能是对字符串的进行操作

6、

功能:去除句子中所有多余的空格

用数组名作形参:void aalltrim(char str[])

用指针作形参:void palltrim(char str[])

参考解答:

//6. 去除句子中所有多余的空格
#include <iostream>
using namespace std;
//void aalltrim(char str[]); //请自行实现
void palltrim(char str[]);
int main(void)
{
	char s[81]="     Some    spaces   are    unnecessary.    ";
	cout<<"请输入一个句子:";
	cout<<"原句子:\""<<s<<"\""<<endl;
	palltrim(s);
	cout<<"去除多余空格后为:\"";
	cout<<s<<"\""<<endl;
	return 0;
}

void palltrim(char *str)
{
	char *p=str,*q=str;
	bool notSpace=false;
	while(*q==' ')
		q++;
	while(*q!='\0')
	{
		if (*q!=' ')
		{
			notSpace=true;
			*p++=*q++; // 不是空格,复制
		}
		else if (notSpace)   //是空格,但目前是第一个(因为之前notSpace=true;的条件是遇非空格)
		{
			notSpace=false;   //第一个空格仍然要复制
			*p++=*q++;
		}
		else   //如遇第二个或更后的空格,正是由于遇到第一个空格并复制后,notSpace=false;的原因,会走到这儿
		{
			q++;   //不复制
		}
	}
	*p='\0';
}
时间: 2024-12-20 21:38:13

C++第17周项目2——用指针玩字符串(6)去多余空格的相关文章

C++第17周项目2——用指针玩字符串(1)连接

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目2-用指针玩字符串]神奇的指针哟,指向整型的指针int *p1,可以操作整型数组int a[]:指向字符型的指针char *p2,可以操作字符数组(字符串)char str[]:指向指针的指针可以操作二维数组.更灵活的是,在函数的传递中,指针.数组名在一定程度上可以互换. 本项目试图通过编制操作字符串的函数,实现字符串的操作. 请编制函数,其功能是对字符串的进行操作

C++第17周项目2——用指针玩字符串(3)求字符串长度

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目2-用指针玩字符串]神奇的指针哟,指向整型的指针int *p1,可以操作整型数组int a[]:指向字符型的指针char *p2,可以操作字符数组(字符串)char str[]:指向指针的指针可以操作二维数组.更灵活的是,在函数的传递中,指针.数组名在一定程度上可以互换. 本项目试图通过编制操作字符串的函数,实现字符串的操作. 请编制函数,其功能是对字符串的进行操作

C++第17周项目2——用指针玩字符串(5)去前导空格

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目2-用指针玩字符串]神奇的指针哟,指向整型的指针int *p1,可以操作整型数组int a[]:指向字符型的指针char *p2,可以操作字符数组(字符串)char str[]:指向指针的指针可以操作二维数组.更灵活的是,在函数的传递中,指针.数组名在一定程度上可以互换. 本项目试图通过编制操作字符串的函数,实现字符串的操作. 请编制函数,其功能是对字符串的进行操作

C++第17周项目2——用指针玩字符串(2)删除字符

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目2-用指针玩字符串]神奇的指针哟,指向整型的指针int *p1,可以操作整型数组int a[]:指向字符型的指针char *p2,可以操作字符数组(字符串)char str[]:指向指针的指针可以操作二维数组.更灵活的是,在函数的传递中,指针.数组名在一定程度上可以互换. 本项目试图通过编制操作字符串的函数,实现字符串的操作. 请编制函数,其功能是对字符串的进行操作

C++第17周项目2——用指针玩字符串(7)比较

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目2-用指针玩字符串]神奇的指针哟,指向整型的指针int *p1,可以操作整型数组int a[]:指向字符型的指针char *p2,可以操作字符数组(字符串)char str[]:指向指针的指针可以操作二维数组.更灵活的是,在函数的传递中,指针.数组名在一定程度上可以互换. 本项目试图通过编制操作字符串的函数,实现字符串的操作. 请编制函数,其功能是对字符串的进行操作

C++第17周项目5——数组排序指针版

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目5-数组的排序]按给定部分程序的要求,用指向数组的指针变量作为形式参数编写函数,完成排序.重点体会:(1)排序算法,可以是冒泡,也可以是选择:(2)用指向数组的指针变量作为形式参数,用数组名(即数组的地址)作为实际参数,函数中对于形参的改变实质上也就是对实参对应内存单元的改变:(3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递. 参考解答 #inclu

C++第17周项目7——用程序玩文件(1)统计单词数

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目7(必看但选做)- 用程序玩转文字]互联网时代,文字的处理显得比任何时候都重重要例如,想想搜索引擎在做什么工作.用们用惯了集成开发环境,例如VC++6.0,它帮我们处理源程序,实际上就是处理由代码行构成的字符串.本项目的几个问题作为引子,请同学们初步体会相关问题的处理办法.请不要因为一时做不出而焦急,可以在寒假完成,但体验,必须进行下去. 1.读入文本文件,统计其中

2013级C++第17周项目——字符串、指针应用

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-体会函数参数传递] 1.下面三段程序都试图通过定义函数,实现实际参数在必要时的交换,哪些能够实现,哪些不能实现?通过运行程序和单步执行,让自己对这一过程更加清楚,然后请在博文中给出明确的回答,并用你自己的话展开描述.) (1) #include <iostream> using namespace std; void jiaohuan(int x, int y

2013-C++第17周项目参考解答链接集

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-体会函数参数传递] 设计一个程序,输入3个整数,将其按从大到小的顺序输出,要求 (1)排序功能通过函数实现 (2)写出两个版本的函数,一个采用传地址值的方法,另一个采用引用类型作参数 参考解答在:http://blog.csdn.net/sxhelijian/article/details/8362289(2012级第17周项目1) [项目2-用指针玩字符串]指