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

简介: 课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565【项目2-用指针玩字符串】神奇的指针哟,指向整型的指针int *p1,可以操作整型数组int a[];指向字符型的指针char *p2,可以操作字符数组(字符串)char str[];指向指针的指针可以操作二维数组。更灵活的是,在函数的传递中,指针、数组名在一定程度上

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


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

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

2、

功能:去除字符串str中的特定字符c(如空格),结果仍保存到原字符串中

用数组名作形参:void adelchar(char str[], const char c)

用指针作形参:void pdelchar(char *str, const char c)


参考解答:

//2. 去除字符串str中的特定字符c(如空格),结果仍保存到原字符串中
#include <iostream>  
#include <string>
using namespace std;
void adelchar(char str[], const char c);
void pdelchar(char *str, const char c);
int main(void)
{
	char s[50]="Hello world. ";
	adelchar(s,'o');
	cout<<"\""<<s<<"\"去除 o 后,字符串为:"<<s<<endl;   //这个输出有瑕疵,见评论,感谢greenbrowser12
	strcpy(s, "my name is tom.");
	adelchar(s,'m');
	cout<<"\""<<s<<"\" 去除 m 后 ,字符串为:"<<s<<endl;
	return 0;
}


void adelchar(char str[], const char c)
{
	int i=0,j;
	for(j=0;str[j]!='\0';j++)
	{
		if(str[j]!=c)
			str[i++]=str[j];   
	}
	str[i]='\0';
	return;
}

void pdelchar(char *str, const char c)
{
	char *p=str,*q=str;
	for(;*q!='\0';q++)
	{
		if(*q!=c)
			*p++=*q; 
	}
	*p='\0';
	return;
}


目录
相关文章
|
9天前
|
存储 程序员 C++
深入解析C++中的函数指针与`typedef`的妙用
本文深入解析了C++中的函数指针及其与`typedef`的结合使用。通过图示和代码示例,详细介绍了函数指针的基本概念、声明和使用方法,并展示了如何利用`typedef`简化复杂的函数指针声明,提升代码的可读性和可维护性。
35 0
|
1月前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
108 4
WK
|
1月前
|
机器学习/深度学习 人工智能 算法
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
86 1
|
2月前
|
存储 安全 编译器
在 C++中,引用和指针的区别
在C++中,引用和指针都是用于间接访问对象的工具,但它们有显著区别。引用是对象的别名,必须在定义时初始化且不可重新绑定;指针是一个变量,可以指向不同对象,也可为空。引用更安全,指针更灵活。
|
2月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
571 3
|
2月前
|
存储 C++
c++的指针完整教程
本文提供了一个全面的C++指针教程,包括指针的声明与初始化、访问指针指向的值、指针运算、指针与函数的关系、动态内存分配,以及不同类型指针(如一级指针、二级指针、整型指针、字符指针、数组指针、函数指针、成员指针、void指针)的介绍,还提到了不同位数机器上指针大小的差异。
63 1
|
2月前
|
存储 编译器 C语言
C++入门2——类与对象1(类的定义和this指针)
C++入门2——类与对象1(类的定义和this指针)
51 2
|
2月前
|
存储 安全 编译器
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值(一)
【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值
|
2月前
|
缓存 网络协议 API
C/C++ StringToAddress(字符串转 boost::asio::ip::address)
通过上述步骤和示例代码,你可以轻松地在C++项目中实现从字符串到 `boost::asio::ip::address`的转换,从而充分利用Boost.Asio库进行网络编程。
89 0
|
2月前
|
编译器 C语言 C++
C/C++数字与字符串互相转换
C/C++数字与字符串互相转换