C++第16周项目1(1)统计字符串/字符数组

简介: 课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565题目【项目1-小心地放开玩字符串/字符数组】(1)读程序,请分析其实现的功能[cpp] view plaincopyprint?#include<iostream>  using namespace std;  int main()  

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


题目

【项目1-小心地放开玩字符串/字符数组】

(1)读程序,请分析其实现的功能
  1. #include<iostream>  
  2. using namespace std;  
  3. int main()  
  4. {  
  5.   char str[50];  
  6.   int i=0,n=0;  
  7.   cout<<"输入字符串:";  
  8.   gets(str);  
  9.   while(str[i]!='\0')  
  10.   {    
  11.     if(str[i]>='0'&&str[i]<='9') n++;  
  12.     i++;  
  13.   }  
  14.   cout<<"其中的数字个数是: "<<n<<endl;  
  15.   return 0;  
  16. }  
请自选下面有关字符串中字符统计的任务,完成两个即可。
  • 统计字母'A'(空格)出现的次数;
  • 统计字符串中(大/小写)字母个数;
  • 统计每一个数字字符出现的次数(提示:笨办法,设十个变量,例a0,a1,...,a9分别保存个数;显示学过数组的办法,设数组a[10],a[0]代表'0'出现的个数,当str[i]为'0'时,a[str[i]-48]++);
  • 统计每一个字母出现的个数(提示:没有必要设26个或52个变量)

参考解答

统计字母'A'(空格)出现的次数

#include<iostream>
using namespace std;
int main()
{
	char str[50];
	int i=0,n=0;
	cout<<"输入字符串:";
	gets(str);
	while(str[i]!='\0')
	{  
		if(str[i]=='A') n++;
		i++;		
	}
	cout<<"其中A出现的次数是: "<<n<<endl;
	return 0;
}

统计字符串中(大/小写)字母个数

#include<iostream>
using namespace std;
int main()
{
	char str[50]={"Asdw08jsdAHJTf67N"};
	int i=0,n=0;
	//cout<<"输入字符串:";
	//gets(str);
	while(str[i]!='\0')
	{  
		if(str[i]>='A'&&str[i]<='Z')//改变条件可以求小写字母,或所有字母出现的次数
 			n++;
		i++;		
	}
	cout<<"其中大写字母出现的次数是: "<<n<<endl;
	return 0;
}

统计每一个数字字符出现的次数

(提示:笨办法,设十个变量,例a0,a1,...,a9分别保存个数;显示学过数组的办法,设数组a[10],a[0]代表'0'出现的个数,当str[i]为'0'时,a[str[i]-48]++);

#include<iostream>
using namespace std;
int main()
{
	char str[50]={"Tel:18363803401, QQ:90878965"};
	int i,a[10]={0}; //a[0]代表'0'出现的个数……,初值全为0
	for(i=0;str[i]!='\0';++i)  //换种循环,这不是关键
	{  
		if(str[i]>='0'&&str[i]<='9')
			a[str[i]-'0']++;   //若str[i]为'0',a[0]将增加;也可以写作a[str[i]-48]++
	}
	cout<<"\""<<str<<"\" 中各数字出现的次数是: "<<endl;
	for(i=0;i<9;++i)
		cout<<"\'"<<i<<"\'---"<<a[i]<<endl;
	return 0;
}


统计每一个字母出现的个数(提示:没有必要设26个或52个变量)

统计52个变量,设置两个数组upper[26]和lower[26],分别存储每一个大写和小写字母出现的个数。其余类似上面的程序……(不能再写参考解答了,否则高手们又要拍砖了,看到这里,还指望参考,也真说不下去了)





目录
相关文章
|
2月前
|
C语言 C++
【实战指南】 C/C++ 枚举转字符串实现
本文介绍了在C/C++中实现枚举转字符串的实用技巧,通过宏定义与统一管理枚举名,提升代码调试效率并减少维护错误。
218 42
|
7月前
|
消息中间件 Linux C++
c++ linux通过实现独立进程之间的通信和传递字符串 demo
的进程间通信机制,适用于父子进程之间的数据传输。希望本文能帮助您更好地理解和应用Linux管道,提升开发效率。 在实际开发中,除了管道,还可以根据具体需求选择消息队列、共享内存、套接字等其他进程间通信方
154 16
WK
|
10月前
|
机器学习/深度学习 人工智能 算法
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
470 1
|
11月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
1868 3
|
11月前
|
缓存 网络协议 API
C/C++ StringToAddress(字符串转 boost::asio::ip::address)
通过上述步骤和示例代码,你可以轻松地在C++项目中实现从字符串到 `boost::asio::ip::address`的转换,从而充分利用Boost.Asio库进行网络编程。
313 0
|
11月前
|
编译器 C语言 C++
C/C++数字与字符串互相转换
C/C++数字与字符串互相转换
|
7月前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。
|
3月前
|
人工智能 机器人 编译器
c++模板初阶----函数模板与类模板
class 类模板名private://类内成员声明class Apublic:A(T val):a(val){}private:T a;return 0;运行结果:注意:类模板中的成员函数若是放在类外定义时,需要加模板参数列表。return 0;
83 0
|
3月前
|
存储 编译器 程序员
c++的类(附含explicit关键字,友元,内部类)
本文介绍了C++中类的核心概念与用法,涵盖封装、继承、多态三大特性。重点讲解了类的定义(`class`与`struct`)、访问限定符(`private`、`public`、`protected`)、类的作用域及成员函数的声明与定义分离。同时深入探讨了类的大小计算、`this`指针、默认成员函数(构造函数、析构函数、拷贝构造、赋值重载)以及运算符重载等内容。 文章还详细分析了`explicit`关键字的作用、静态成员(变量与函数)、友元(友元函数与友元类)的概念及其使用场景,并简要介绍了内部类的特性。
163 0
|
5月前
|
编译器 C++ 容器
【c++11】c++11新特性(上)(列表初始化、右值引用和移动语义、类的新默认成员函数、lambda表达式)
C++11为C++带来了革命性变化,引入了列表初始化、右值引用、移动语义、类的新默认成员函数和lambda表达式等特性。列表初始化统一了对象初始化方式,initializer_list简化了容器多元素初始化;右值引用和移动语义优化了资源管理,减少拷贝开销;类新增移动构造和移动赋值函数提升性能;lambda表达式提供匿名函数对象,增强代码简洁性和灵活性。这些特性共同推动了现代C++编程的发展,提升了开发效率与程序性能。
161 12