c语言程序实验————实验报告八

news/2024/9/27 9:26:05

c语言程序实验————实验报告八

  • 实验项目名称: 实验报告8 字符串处理函数
  • 实验项目类型:验证性
  • 实验日期:2024 年 5 月 9 日

一、实验目的

1.熟练掌握数组的定义格式和数组元素的表示方法;
2.熟悉数组的初始化方法和赋值方法;
3.掌握字符数组存放字符串的方法和字符串函数的使用;
4.熟悉数组元素的操作,特别是输入与输出操作;
5.掌握与数组有关的典型算法,比如排序算法、矩阵的处理、字符串的处理;
6.进一步学习程序调试。

二、实验硬、软件环境

Windows计算机、Dev c 6.0

实验内容:

(1)输入两个字符串str1和str2,比较后将较大的字符串存在str1中,将较小的存在str2中。
(2)从键盘任意输入一个字符串,以空格作为结束,要求编写一个程序统计字符串的有效长度。
(3)从键盘输入一个字符串和一个字符,要求去掉字符串中指定字符。例如:输入字符串
onewordone**dream”,输入要删除的字符’*’,所得结果字符串为“onewordonedream”。
(4)输入一个字符串,判断该字符串是否为回文。回文是对称相同的字符串,如“level”。

三、实验步骤:

项目一

解题思路
输入调用字符串操作的头文件#include<string.h>,char说明数组str1[15],str2[15],t[15];scanf调用str1和str2,if函数定义(strcmp(str1,str2)<0);输入strcpy(t,str1);strcpy(str1,str2);strcpy(str2,t);printf输出str1,str2。
核心代码
#include<stdio.h>
#include<string.h>
int main()
{
char str1[15],str2[15],t[15];
scanf("%s%s",str1,str2);
if(strcmp(str1,str2)<0);
{
strcpy(t,str1);
strcpy(str1,str2);
strcpy(str2,t);
}
printf("str1=%s,str2=%s\n",str1,str2);
printf("31韩翔-项目1");
}
实验截图

项目二

解题思路
char说明数组a[80],int定义i=0,num=0;scanf调用a,while函数定义a[i]!='\0';输入表达式num++;i++;printf输出a;printf("\n");printf输出个数,num
核心代码
#include<stdio.h>
int main()
{
char a[80];
int i=0,num=0;
printf("请输入字符串:\n");
scanf("%s",a);
while (a[i]!='\0')
{
num++;
i++;
}
printf("%s",a);
printf("\n");
printf("个数%d\n",num);
printf("31韩翔-项目2");
}
实验截图

项目三

解题思路
char说明数组a[1000],输入b;int输入i;输出字符串,输入gats(a);输出要删除的一个字符,输入b=getchar();for函数定义(i=0;a[i]!='\0';i++);if函数定义(a[i]!=b),printf输出a[i]
核心代码
#include<stdio.h>
int main()
{
char a[1000];
int i;char b;
printf("请输入字符串:\n");
gets(a);
printf("删除一个字符:\n");
b=getchar();
for(i=0;a[i]!='\0';i++)
if(a[i]!=b)
printf("%c",a[i]);
printf("\n");
printf("31韩翔-项目3");
}
实验截图

项目四

解题思路
输入调用字符串操作的头文件#include<string.h>,再定义一堆数组#define MAX 99。char说明数组str[MAX],int输入i,j,num;puts输入字符串,输入grts(str),输入表达式num=strlen(str);char定义数组b[num];for函数定义(i=num-1,j=0;i>=0;i--,j++),输入表达式b[j]=str[i];再输入b[j]='\0';if函数定义(strcmp(str,b)0),输出是回文,如果不是则(else)输出不是回文。
核心代码
#include<stdio.h>
#include<string.h>
#define MAX 99
int main(void)
{
char str[MAX];
int i,j,num;
puts("输入一个字符串:\n");
gets(str);
num=strlen(str);
char b[num];
for(i=num-1,j=0;i>=0;i--,j++)
{
b[j]=str[i];
}
b[j]='\0';
if(strcmp(str,b)
0)
{
printf("是回文\n");
printf("31韩翔-项目4");
}
else
{
printf("不是回文\n");
printf("31韩翔-项目4");
}
}
实验截图

四、实验结果及分析

在项目三中没有输入b=getchar()导致程序运行不出来,输入后顺利运行
在项目二中while定义中里没加单引号,后改正加入单引号(a[i]!='\0')。
在项目四中没有定义头函数#define MAX 99,导致错误,经同学知道改正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/30514.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Blazor WebAssembly使用 AuthenticationStateProvider 自定义身份认证

本文章以客户端基础,实现类似后台系统,进入后台控制台页面需要经过登录身份验证才可访问情况 简单来时就是实现前后端分离,前端通过 token和用户信息进行身份认证,或者在 AuthenticationStateProvider 实现方法 GetAuthenticationStateAsync 中调用后台接口进行身份验证 安…

100274. 从魔法师身上吸取的最大能量

在神秘的地牢中,n 个魔法师站成一排。每个魔法师都拥有一个属性,这个属性可以给你提供能量。有些魔法师可能会给你负能量,即从你身上吸取能量。 你被施加了一种诅咒,当你从魔法师 i 处吸收能量后,你将被立即传送到魔法师 (i + k) 处。这一过程将重复进行,直到你到达一个不…

Lua热更学习--使用toLua中的协程

[6] C#访问调table类中的成员变量和函数 访问table中的变量和函数 lua中可以使用table作为class,因此对table中的函数访问调用是必要的根据前面对table访问和function的获取调用,这里尝试获取调用。 依然是如此,此种调用方式获取到的table中的函数是引用拷贝。 Main.lua脚本…

consul部署

下载二进制包 下载地址:https://developer.hashicorp.com/consul/install https://releases.hashicorp.com/consul/1.18.1/consul_1.18.1_linux_amd64.zip下载解压wget https://releases.hashicorp.com/consul/1.18.1/consul_1.18.1_linux_amd64.zip [root@mcw12 mcw]# ls con…

TCP的四次挥手过程

TCP连接是双向传输的对等的模式(全双工模式),就是说双方都可以同时向对方发送或接收数据。而断开的时候,也是双方都可以主动断开,此时需要经过四次挥手的过程,流程如下图所示...TCP连接是双向传输的对等的模式(全双工模式),就是说双方都可以同时向对方发送或接收数据。…

Android开发Kotlin学习笔记

为了做《基于安卓定位的考勤系统》,学了一些杂乱的知识,在这里简单记录一下。除了在C#桌面应用开发中感性的体会到了些XML布局的知识以及课上学习的Java知识,其他也算是零基础了。 Google Android Developer的课程 2023/10/25 :跟着官方文档先快速入门一下基本内容。截至目…

SpringBoot速记

本篇以SpringBoot快速构建一个基础项目,在构建的同时记录相关的知识。常见的架构图: 其中, config中可以引入第三方的jar包 controller中存放控制类一个简单的例子如下: mapper中存放对数据库的操作接口 pojo中是实体对象类,常与数据表对应 service中存放服务类: xml中…