这两天做作业有感

本文详细介绍了如何解决在程序设计中找出给定字符串中大写字母个数的问题,并深入探讨了在解决此问题过程中遇到的内存错误及其原因分析。文章还强调了基础练习的重要性,指出频繁实践对于掌握编程技能的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     国庆节7天假,很容易就过去了,这两天在补作业,说实话,老师布置的作业都很基础的,选择填空题都是一些概念性很强的常识题。而程序设计题呢,也都是类似于谭浩强老师编的教材上的题目了。真的很基础,但是我发现那些程序设计题,自己做的还是没有进入状态,没有手感,很多程序似曾相识,编过、做过、老师讲过。但是就是公布了手,就是奇怪了,又不是没有接触过的算法题。自己仔细想想是自己练得太少了,没有足够的代码量!

  自己就试着写了很多程序,其中就有一道题是这样的:

    1. 写一个函数,找出给定字符串中大写字母字符(即'A'~'Z'这26个字母)的个数。

应该是很基础的题目吧,我也信心十足的写了起来:

    程序编译能够通过的,但是就是执行输入数据后发生内存错误,一直找不到原因:

程序代码如下:

 

#include<iostream>
#include<ctype.h>//求一个字符串中大写字母的总和
#include<string>
using namespace std;
int main()
{
	
	char s[10];

	int k=0;
	cout<<"please enter string:";
	for(int i=0;i<10;i++)
	cin>>s[i];
	char *p=s;
	for(;p!=NULL;p++)  //问题就出在这里
	{
/*	switch(*p)
	{
		case 'A'
	
	}*/
	if (isupper(*p)) k++;
	}
	cout<<"大写字母的总和为:"<<k<<endl;



return 0;
}


运行后就出现内存错误:

 

 

 

   自己找了很久都没有找到错误之所在,就像qq群求助了,有几个回答了的,但是回答了相当与没有回答:

其中这位c++老兄的回答让我若有所思,也许我问的问题真的是台初级了,但是他说初级,可是有不给我指出错误,真是…………估计他是不屑于吧!

认识到自己水平真的入门级别的吧,是啊练得太少了,就是上课听老师讲讲,就罢了…………

但是终究是要解决问题了,同时有想到老师和我们讲“你们不要一个劲头的钻什么高级程序,高级算法,重要的是在本科阶段打好基础,一些大公司面试也是考查基础的”,一次听卢东昕教授讲座,他也是说他们公司面试很多时候题目就是谭浩强老师编的教材后面联系题的难度,甚至有时是一样的……

我发现基础是很重要的,估计容易掌握也容易忘记吧,所以要经常练习巩固才能掌握牢固。

  自己再认真检查了一下程序,问题就是出在for语句指针控制循环终止的那个语句,应该是*p!=NULL;而不是p!=NULL;因为p是地址,由于p之前就已经初始化为一个非零号地址,所以不可能在为零号地址了,应该是当*P里面的内容为“''\0”时,所以真的是内容,而不是地址。这样这个程序才正常运行了。

  

 

要完成这份关于“计算机网络基础”的作业,你需要按照以下步骤操作: ### 一、准备工作 1. **计算机**:确保有一台可以连接互联网的电脑。 2. **Wireshark 软件**:安装并熟悉 Wireshark 抓包工具的使用方法。 ### 二、具体任务 #### (1) 发送 HTTP/1.1 POST 请求并抓包 - 使用浏览器或其他客户端工具(如 Postman),向服务器的 `/` 路径发送一个包含 `Hello` 数据的 HTTP/1.1 POST 请求。 - 启动 Wireshark 并开始捕获网络流量。 - 执行上述请求后,在 Wireshark 中找到对应的请求包并截屏保存。 #### (2) 编写请求报文 假设请求报文中只包含 `Content-Length` `Content-Type` 两个首部字段,请求报文应如下所示: ``` POST / HTTP/1.1 Host: example.com Content-Type: text/plain Content-Length: 5 Hello ``` #### (3) 运输层协议数据单元 将上述请求报文封装到 TCP 协议中,形成运输层的协议数据单元(PDU)。此时的数据载荷部分与请求报文相同,即: ``` [IP Header] [TCP Header] [Request Payload] ``` 其中,`Request Payload` 部分为: ``` POST / HTTP/1.1 Host: example.com Content-Type: text/plain Content-Length: 5 Hello ``` #### (4) 网络层协议数据单元 将运输层的 PDU 封装到 IP 协议中,形成网络层的 PDU。此时的数据载荷部分与运输层的 PDU 相同,即: ``` [IP Header] [TCP Header] [Request Payload] ``` #### (5) 数据链路层协议数据单元 将网络层的 PDU 封装到以太网帧中,形成数据链路层的 PDU。此时的数据载荷部分与网络层的 PDU 相同,即: ``` [Ethernet Header] [IP Header] [TCP Header] [Request Payload] ``` ### 三、总结与体会 在完成以上任务后,撰写一份总结与体会,包括但不限于以下内容: - 对 Wireshark 抓包工具的使用体验。 - 对计算机网络各层次协议的理解。 - 在实际操作过程中遇到的问题及解决方法。 - 对本次实验的整体感受收获。 希望这些指导对你完成作业有所帮助!如果有任何疑问或需要进一步的帮助,请随时告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值