实验09-字符串

合集下载

字符串的应用实验原理

字符串的应用实验原理

字符串的应用实验原理实验目的本实验旨在通过实际操作和分析,探究字符串在计算机科学中的应用原理,深入了解字符串的定义、操作和常见应用。

实验原理1. 字符串的定义字符串是一种包含字符序列的数据类型,可以包含任意排列的字符,例如字母、数字、标点符号等。

在计算机中,字符串通常以字符数组的形式储存,并使用某种特定的编码方式来表示字符。

2. 字符串的操作字符串可以进行多种操作,包括拼接、截取、替换、查找等。

以下是几个常见的字符串操作:•字符串拼接:将两个或多个字符串连接起来形成一个新的字符串。

•字符串截取:从一个字符串中截取出指定范围的子字符串。

•字符串替换:将字符串中指定的字符或子字符串替换为新的字符或子字符串。

•字符串查找:在字符串中查找指定的字符或子字符串,并返回其位置或索引值。

3. 字符串的应用字符串在计算机科学中有广泛的应用,以下是几个典型的应用场景:•文本处理:字符串可以用于处理文本数据,包括读取和分析文本文件、编写文本编辑器等。

•数据传输:在网络通信中,字符串经常用于传输数据,例如传输文件、发送邮件等。

•数据库操作:字符串在数据库中扮演重要的角色,用于存储和查询数据,例如SQL语句中的查询条件和结果。

•编程语言:字符串是几乎所有编程语言的基本数据类型,用于表示文本信息和操作字符串。

实验步骤1.创建一个字符串变量,并赋予其初始值。

2.执行字符串拼接操作,将两个字符串连接为一个新的字符串。

3.使用字符串截取操作,从拼接后的字符串中截取出指定范围的子串。

4.执行字符串替换操作,将指定的字符或子字符串替换为新的字符或子字符串。

5.使用字符串查找操作,查找指定字符或子字符串在字符串中的位置或索引值。

实验结果和分析经过以上实验步骤,我们可以观察到字符串的各种操作的效果。

通过拼接操作,我们可以将两个字符串连接为一个新的字符串,这在实际开发中常用于生成动态的文字信息。

通过截取操作,我们可以从一个较长的字符串中提取出所需的部分,这在处理大文本数据时很有用。

python字符串实验总结

python字符串实验总结

python字符串实验总结Python字符串实验总结引言:Python是一种非常流行的编程语言,它具有简洁易懂的语法和强大的功能。

字符串是Python中常用的数据类型之一,它在处理文本和字符相关的任务时非常重要。

本文将总结我在进行Python字符串实验过程中的一些经验和收获。

一、字符串的定义和基本操作:在Python中,字符串是用引号括起来的字符序列。

可以使用单引号或双引号来定义字符串,例如:```string1 = 'Hello, world!'string2 = "Python is awesome!"```字符串可以进行一些基本的操作,比如拼接、重复、索引和切片等。

拼接两个字符串可以使用加号运算符,例如:```string3 = string1 + " " + string2```这样就将两个字符串拼接在一起了。

字符串也可以重复多次,使用乘号运算符,例如:string4 = string1 * 3```这样就将字符串重复三次了。

通过索引和切片,可以获取字符串中的某个字符或子串,例如:```char = string1[0] # 获取第一个字符'H'substring = string1[7:12] # 获取子串'world'```二、字符串的常用方法:Python提供了许多内置方法来处理字符串,这些方法可以方便地进行字符串的操作和转换。

下面列举几个常用的字符串方法:1. len():返回字符串的长度;2. lower()和upper():将字符串转换为小写或大写;3. strip():去除字符串两端的空白字符;4. split():将字符串按照指定的分隔符分割成多个子串;5. join():将多个字符串拼接成一个字符串。

例如,可以使用len()方法获取字符串的长度:```length = len(string1)使用lower()方法将字符串转换为小写:```lowercase = string1.lower()```使用split()方法将字符串按照空格分割成多个子串:```words = string1.split(" ")```使用join()方法将多个字符串拼接成一个字符串:```joined_string = "-".join(words)```三、字符串的格式化输出:在实际应用中,经常需要将变量的值插入到字符串中,可以使用字符串的格式化输出来实现。

【2017年整理】字符串实验报告

【2017年整理】字符串实验报告

【2017年整理】字符串实验报告文中“字符串实验报告”是一个有关字符串的实验研究。

本篇报告将结合实际测试结果,概述字符串及其操作方面的实验进行,以此来获取字符串的重要性及其在今天的应用。

首先介绍字符串的概念。

字符串是由字符存储的一串字符的集合。

它可以包含字母、数字、空格和符号等,可用于标识、存储或输出信息。

任何编程语言中的每个字符串都在正确的语言环境中使用。

我们的实验分为两部分。

第一部分将包括字符串的定义、存储空间和字符串的操作。

第二部分将探讨字符串和其它数据类型之间的转换。

完成这项实验,首先,我们必须创建一系列字符串以表明字符串的存储位置和字符串的操作方法。

我们使用了C语言在Xcode集成开发环境中应用字符串的实验,以获得更好的理解。

通过编程,我们可以知道字符串的存储位置,它是存储在内存中,可以创建一个存储长度可以让字符串变长。

此外,我们还可以定义不同字符串长度的不同字符串,这就是定义字符串的内存位置。

此外,我们还学习了在C编程语言中字符串操作中使用的一些函数,如strcpy()、strcat()、strcmp()、strlen()、strrev()等。

第二部分实验探讨字符串和其它数据类型之间的转换。

我们采用的是C语言,新的函数会加入到实验中。

两种最常见的函数:atoi()和 itoa(),可以将一个字符串转换为int 类型,或者将一个int类型转换为字符串。

另外,函数 sprintf() 和 sprintf_s() 可以将字符串转换为其他格式,或者将其他格式转换为字符串。

通过实验,我们对字符串有了更深入的理解,学会了如何定义字符串,以及如何进行字符串操作。

此外,我们还探索了一些技巧,可以将字符串转换为数字或其他格式,使之成为今天应用程序中更广泛使用的操作。

经过实验,我们发现字符串在信息存储、处理和输出,以及数据转换方面有着重要的作用。

今后在编程过程中使用字符串的技术分析,能更准确地满足用户的实际需求,有助于提高软件质量及应用程序的性能。

python字符串用法实验心得

python字符串用法实验心得

python字符串用法实验心得通过对Python字符串的实验,我深刻理解了字符串的用法和特性。

下面我将总结和分享我的实验心得。

首先,字符串在Python中是不可变的。

这意味着一旦创建了一个字符串,它的值将无法更改。

当我们对字符串进行操作时,实际上是创建了一个新的字符串对象。

这种特性使得字符串在处理大量文本和字符串拼接时非常高效,因为不需要频繁地复制和修改原始字符串。

其次,字符串可以通过索引和切片来访问和操作其中的字符。

在Python中,字符串的索引从0开始,负数索引表示倒数位置。

例如,字符串"Hello World"可以通过"Hello World"[0]来获取第一个字符"H",通过"Hello World"[-1]来获取最后一个字符"d"。

切片操作可以用来获取子字符串,如"Hello World"[0:5]将返回"Hello"。

此外,Python提供了丰富的字符串方法,使得对字符串的处理更加方便。

例如,我们可以使用lower()方法将字符串转换为小写,使用upper()方法将字符串转换为大写。

还可以使用strip()方法去除字符串两端的空白字符,使用replace()方法替换字符串中的特定部分。

另一个有用的方法是split(),它可以将字符串分割成多个子字符串,返回一个列表。

我们可以传入一个分隔符参数,指定字符串在哪些位置进行分割。

例如,"Hello World".split()将返回['Hello', 'World']。

此外,我还学会了如何使用字符串的格式化功能。

通过使用占位符和format()方法,我们可以创建动态的字符串。

例如,"{}, {}!".format("Hello", "World")将生成字符串"Hello, World!"。

字符串匹配实验

字符串匹配实验

微机原理实验字符串匹配实验一、实验目的(1)掌握提示信息的使用方法及键盘输入信息的方法。

(2)进一步熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。

二、实验要求根据提示信息,从键盘输入两个字符串,实现两个字符串的比较。

如两个字符串中有一个字符相同,则显示“MATCH”,否则显示“NO MA TCH”.三、实验程序框图本实验程序如图所示:Array四、参考程序CRLF MACROMOV AH ,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMESS1 DB’MATCH’,0DH,0AH,’$’MESS2 DB’NO MA TCH’,0DH,0AH,’MAXLEN1 DB 81ACTLEN1 DB ?STRING1 DB 81 DUP(?)MAXLEN2 DB 81ACTLEN2 DB?STRING2 DB 81 DUP(?)DATA ENDSSTACK SEGMENT STACKSTA DB 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS: CODE,DS:DA TA,ES:DATA,SS:STACK START: MOV AX,DA TAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV AH,09HMOV DX,OFFSET MESS3INT 21HCRLFMOV AH,0AHMOV DX,OFFSET MAXLEN1INT 21HCRLFMOV AH,09HMOV DX,OFFSET MESS4INT 21HMOV AX,0AHMOV DX,OFFSET MAXLEN2INT 21HCRLFCLDMOV SI,OFFSET STRING1MOV CL,[SI-1]MOV CH,00HKKK: MOV DI,OFFSET STRING2 PUSH CXMOV CL,[DI-1]MOV CH,00HMOV AL,[SI]MOV DX,DIREPNZ SCASBJZ GGGINC SIPOP CXLOOP KKKMOV AH,09HMOV DX,OFFSET MESS2INT 21HJMP PPPGGG: MOV AH,09HMOV DX,OFFSET MESS1INT 21HPPP: MOV AX,4C00HINT 21HCODE ENDSEND START。

字符串处理实验报告

字符串处理实验报告

字符串处理实验报告班级:10网工三班学生姓名:谢昊天学号:1215134046实验目的和要求:使学生能够掌握PHP中常用字符串函数的使用方法实验内容:编写PHP页面,实现字符串翻转功能、中文字符串截取、字符串对比、HTML 字符串过滤等功能实验步骤与调试过程:第一步、php服务器安装并成功后就可以开始php编程之旅单击任务栏中的系统托盘中wampserver图标,弹出界面用于管理服务器调试一下,然后打开start all services 选项,时启动服务器在C:\wamp\www下建立项目sez(十二周首字母),并在该目录下新建一个文本文档,然后将该文件名称从新建文本文档.txt修改为test1.php第二步、在sez项目中建立文件test2.php,此页面主要用来实现中文字符串截取功能,代码如下所示。

在sez项目中建立文件test3.php,此页面主要用来实现字符串对比功能,代码如下所示。

在sez项目中建立文件test4.php,此页面主要用来实现HTML字符串过滤功能,代码如下所示。

第三步、以记事本方式打开test1.php文件输入代码第四步、保存test1.php文件内容后,启动php服务器第五步、打开IE浏览器,在地址栏中输入http://localhost/1/helloworld.php后按回车键看到想要看到页面则这个php程序编写运行成功第六步、为保证php程序文件的扩展名确实为php不能隐藏已知文件类型的扩展名单击工具文件夹选项,弹出文件夹选项对话框第七步、在文件夹选项对话框中选择查看选项卡取消那个复选框,然后单击确定按钮即可完成显示文件名的扩展名设置实验结果:1、实现字符串翻转功能页面test1.php运行结果如下所示,此页面实现了英文和中文的字符翻转功能。

2、实现中文字符串截取功能页面test2.php运行结果如下所示,功能已经实现。

3、实现中文字符比较功能页面test3.php运行结果如下所示,功能已经实现。

字符串

字符串

成都工业学院计算机工程系
《数据结构》·实验报告
实验名称实验、字符串和多维数组实验实验时间
学生姓名班级学号
指导教师批阅教师成绩
实验目的:
(1)掌握串的顺序存储结构
(2)验证顺序串及其基本操作的实现
(3)掌握串的操作特点
实验设备:
联网的PC机一台,安装有Windows操作系统
实验内容:
(1)定义一个包含串的长度丶拼接丶比较大小等基本操作的头文件函数原型
(2)实现串的求长度丶拼接丶比较大小等基本操作
实验步骤及实验结果记录:
1.在vc环境中新建一个工程“串操作的实现”,在该工程中新建一个头文件str.h,该范
例程序如下
2.在工程中新建STR,CPP,该文件包括与串的基本操作对应的函数定义,程序如下
3,在工程中新建str_main.cpp,该文件包含主函数,范例程序为下4结果
实验总结:编辑的时候输入会出现小错误但是之后能够明确的知道错误在哪里并且改正,大小写的转换也不是特别的熟练,有待提高。

字符串实验报告

字符串实验报告

数据结构字符串实验班级:计算机应用技术10-1 学号:10602101048 姓名:姚福刚一、实验目的及要求:掌握有关字符串的基本操作和存储结构,并编写相应的基本操作算法。

二、实验内容:(1) 求字符串的长度算法(2) 求字符串的拷贝算法(3) 字符串的连接算法(4) 字符串的比较算法(5) 字符串的逆置算法(6) 用strtok( )函数分离单词。

(选做)三、实验准备:1) 计算机设备;2) 程序调试环境的准备,如VC6或WIN-TC环境;3) 实验内容的算法分析与代码设计准备。

四、函数实现1、长度函数int strlen(char *p){ int count=0;while(*p!='\0'){ count++;p++;}return count;}2、拷贝函数void scopy(char *s1,char*s2) /* s1<---s2 */ { int len,i;len=strlen(s2);for(i=0;i<len;i++)s1[i]=s2[i];s1[i]='\0';return ;}3、连接函数void strcat(char *s1,char *s2){ int len1,len2;len1=strlen(s1);scopy(s1+len1,s2);return ;}4、比较函数int trcmp(char *s1,char *s2){ int i=0;while(s1[i]==s2[i]){ if(s1[i]=='\0') return 0;i++;}return (s1[i]-s2[i]);}5、逆置函数void ReverseStr(char *s){ int i,j;char t;for(i=0,j=strlen(s)-1;i<j;i++,j--){ t=s[i];s[i]=s[j];s[j]=t;}}五、测试(在主函数中调用函数测试功能)#include<stdio.h>#include<conio.h>#define MAXSIZE 80int main(void){ char p1[]="",p2[]="";printf("\n\t (1)p1->length=%d p2->length=%d\n",StrLen(p1),StrLen(p2)); Strcat(p1,p2);printf("\n\t (2)p1=%s\n",p1);printf("\n\t (3)the result is %d\n",Strcmp(p1,p2) );ReverseStr(p1);printf("\n\t (4)p1=%s\n",p1);getch();return 0;}实验截图:六、心得体会通过这次实验让我了解了什么是字符串,他是一种特殊的线性表,并了解有关字符串的基本操作和存储结构,并编写相应的基本操作算法。

字符串实验报告心得

字符串实验报告心得

在进行字符串实验报告时,以下是一些心得和建议:清晰的实验目标:在撰写实验报告之前,确保你对实验的目标和研究问题有清晰的理解。

这有助于你在报告中提供准确的描述和分析。

结构化报告:一个良好结构化的实验报告可以使读者更容易理解你的实验设计、方法和结果。

确保报告包含以下部分:引言(背景和目的)、实验设计(包括样本和工具)、实验步骤、结果和讨论(分析结果、提供结论)。

准确的描述和量化结果:在结果部分中,详细描述实验结果并使用适当的统计工具进行量化分析。

这可以增加结果的可信度和可重复性。

图表和图像:使用图表和图像来直观地展示实验结果。

确保图表和图像标注清晰,包括坐标轴标签、图例和标题。

讨论和分析:在讨论部分中,对实验结果进行深入分析,并与相关文献进行比较和讨论。

解释结果的意义,提出可能的解释,并讨论实验的局限性和改进方向。

结论和总结:在结论部分中,简洁地总结实验的主要发现和结果。

提出对未来研究的建议,并强调实验的重要性和影响。

引用参考文献:确保在报告中引用使用到的参考文献。

这可以增加你报告的可信度,并为读者提供进一步阅读和了解的资源。

语言和风格:使用清晰、简明的语言撰写报告,避免使用模糊和含糊不清的表达。

注意语法、拼写和标点符号的正确性,使报告易于阅读和理解。

反思和总结:最后,在报告中加入你个人对实验的反思和总结。

包括你对实验过程和结果的感受、遇到的挑战以及可能的改进措施。

通过遵循上述建议,你可以撰写出一个有条理、准确且易于理解的字符串实验报告。

记住,实验报告不仅仅是对实验结果的描述,更是一个展示你的研究能力和科学方法的机会。

python程序设计字符串类型实验报告

python程序设计字符串类型实验报告

python程序设计字符串类型实验报告Python程序设计字符串类型实验报告1. 引言字符串是Python中常用的数据类型之一,它用于存储和操作文本数据。

本实验报告将介绍字符串的基本概念、常用操作方法以及应用场景,帮助读者全面了解和掌握字符串类型的使用。

2. 字符串的定义和表示字符串是由字符组成的序列,可以使用单引号、双引号或三引号来表示。

例如,'hello'、"world"和'''Python'''都是字符串的表示形式。

在字符串中可以包含字母、数字、特殊字符和空格等。

3. 字符串的基本操作3.1 字符串的连接可以使用加号运算符将两个字符串进行连接,例如"hello" + "world"的结果是"helloworld"。

另外,还可以使用乘号运算符实现字符串的重复连接,例如"hello" * 3的结果是"hellohellohello"。

3.2 字符串的索引和切片字符串可以通过索引获取指定位置的字符,索引从0开始。

例如,字符串"Python"中的第一个字符是'P',可以通过"Python"[0]来获取。

除了索引外,还可以使用切片操作获取子字符串。

例如,"Python"[1:4]的结果是"yth",表示获取索引为1到3的字符。

3.3 字符串的长度可以使用len()函数获取字符串的长度,例如len("Python")的结果是6。

3.4 字符串的格式化字符串的格式化可以将变量的值插入到字符串中的占位符中。

常用的格式化方法有两种:使用百分号(%)和使用format()函数。

例如,"Hello, %s!" % "world"的结果是"Hello, world!",而"Hello, {}!".format("world")的结果也是"Hello, world!"。

字符串实验报告

字符串实验报告

一、实验目的1. 理解字符串的基本概念和操作。

2. 掌握字符串的常用函数及其应用。

3. 熟悉字符串的查找、替换、截取等操作。

4. 培养实际编程解决问题的能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容1. 字符串的创建与赋值2. 字符串的常用函数3. 字符串的查找与替换4. 字符串的截取与拼接5. 字符串的遍历与遍历操作四、实验步骤1. 字符串的创建与赋值```pythonstr1 = "Hello, world!"str2 = 'Python is awesome.'```2. 字符串的常用函数```python# 获取字符串长度len(str1)# 获取字符串索引str1[0]# 获取字符串切片str1[1:5]# 获取字符串中子字符串的索引str1.find("world")# 获取字符串中子字符串的索引(从指定位置开始)str1.find("world", 6)# 获取字符串中子字符串的索引(从指定位置开始,直到指定位置结束)str1.find("world", 6, 11)# 检查字符串是否以指定子字符串开头str1.startswith("Hello")# 检查字符串是否以指定子字符串结尾str1.endswith("world")# 将字符串转换为小写str1.lower()# 将字符串转换为大写str1.upper()# 将字符串转换为首字母大写str1.capitalize()# 判断字符串是否全部由字母组成str1.isalpha()# 判断字符串是否全部由数字组成str1.isdigit()# 判断字符串是否为空str1.isempty()```3. 字符串的查找与替换```python# 查找子字符串str1.find("world")# 替换子字符串str1.replace("world", "Python")# 替换所有匹配的子字符串str1.replace("world", "Python", 1) ```4. 字符串的截取与拼接```python# 截取字符串str1[1:5]# 拼接字符串str1 + " " + str2```5. 字符串的遍历与遍历操作```python# 遍历字符串for char in str1:print(char)# 遍历字符串的索引for i in range(len(str1)):print(str1[i])# 遍历字符串的索引和值for i, char in enumerate(str1):print(i, char)```五、实验结果与分析1. 字符串的创建与赋值实验结果:成功创建了两个字符串str1和str2。

字符串的操作

字符串的操作

上机实习报告实验题目:实现字符串的操作基本要求:(1)字符串采用动态数组存储,建立两个字符串String1和String2,输出两个字符串(2)将字符串String2的头n个字符添加到String1的尾部,输出结果(3)查找串String3在String1中的位置,若String3在String1中不存在,则插入String3在String1中的m位置上,输出结果测试数据:(1)string1:”typedefstructArcBox”String2:”VertexTypedata”String3:”data”(2) String1:”structArcBox”String2:”VertexType”String3:”Box”算法思想:1用动态数组存储,建立两个字符串String1和String2,输出两个字符串。

2将字符串String2的头n个字符添加到String1的尾部,输出结果3查找串String3在String1中的位置,若String3在String1中不存在,则插入String3在String1中的m位置上,输出结果模块划分:(1)void Initiate(DString *S, int max, char *string)的作用是:初始化字符串S,将string的字符复制到S中;(2)int Insert(DString *S, int pos, DString T)的作用是:在主串的pos位置插入子串T;(3)int Delete(DString *S, int pos, int len)函数的功能是:删除主串s从pos位置开始的长度为len的子串,删除成功则返回1,失败则返回0(4) int SubString(DString *S, int pos, int len, DString *T) 取主串S从pos位置开始的长度为len的字串,取成功返回1,失败返回0;(5)void Destroy(DString *S)的函数的功能是:撤销串S所占的空间(6)void BFIndex(DString S,int start,DString T)函数的功能是:查找子串S从start 开始的子串T数据结构:typedef struct{char *str;int maxLength;int length;} DString;实验程序:头文件:typedef struct{char *str;int maxLength;int length;} DString;void Initiate(DString *S, int max, char *string){int i;S->str = (char *)malloc(sizeof(char)*max);S->maxLength=max;S->length = strlen(string);for(i = 0; i < S->length; i++)S->str[i] = string[i];}int Insert(DString *S, int pos, DString T){ int i;if(pos < 0){ printf("参数pos出错!"); return 0; }else{//重新申请S->str所指数组空间,原数组元素存放在新数组的前面if(S->length + T.length > S->maxLength)realloc(S->str, (S->length+T.length)*sizeof(char));S->maxLength=S->length+T.length;for(i = S->length-1; i >= pos; i--)S->str[i+T.length] = S->str[i]; //依次后移T.length个位置for(i = 0; i < T.length; i++)S->str[pos+i] = T.str[i]; //插入字串S->length = S->length + T.length; //改变S的数据元素个数return 1;}}//删除主串s从pos位置开始的长度为len的子串,删除成功则返回1,失败则返回0 int Delete(DString *S, int pos, int len){ int i;if(S->length <= 0){ printf("数组中未存放字符无元素可删! \n"); return 0;}else if(pos < 0 || len < 0 || pos+len > S->length){ printf("参数pos和len不合法"); return 0; }else{for(i = pos+len; i <= S->length-1; i++)S->str[i-len] = S->str[i]; //依次前移len个位置 S->length = S->length - len; //重置数据元素个数return 1;}}//取主串S从pos位置开始的长度为len的字串,取成功返回1,失败返回0 int SubString(DString *S, int pos, int len, DString *T){ int i;if(pos < 0 || len < 0 || pos+len > S->length){ printf("参数pos和len出错!");return 0;}if(len>T->maxLength){T->str=(char*)malloc(len*sizeof(char));T->maxLength=len;}for(i = 0; i < len; i++)T->str[i] = S->str[pos+i];T->length = len;return 1;}void Destroy(DString *S){free(S->str);S->maxLength = 0;S->length = 0;}void BFIndex(DString S,int start,DString T){int i=start,j=0,v;while(i<S.length&&j<T.length){if(S.str[i]==T.str[j]){i++;j++;}else {i=i-j+1;j=0;}}if(j==T.length){ v=i-T.length;printf("串String3在String1中的%d位置",v);}else {printf("串String3在String1中不存在!\n");Insert(&S,S.length,T);for(i=0;i<S.length;i++)printf("%c",S.str[i]);printf("\n");}}主函数测试:#include<stdio.h>#include<malloc.h>#include<string.h>#include"head.h"void main(){DString mystring1,mystring2,mystring3,mystring4;int i,max1=19,max2=14,max3=3,max4=0;//初始化Initiate(&mystring1,max1,"typedefstructArcBox"); Initiate(&mystring2,max2,"VertexTypedata");Initiate(&mystring3,max3,"data");Initiate(&mystring4,max4,"");//建立两个字符串String1和String2,输出两个字符串printf("字符串mystring1是:");for(i=0;i<mystring1.length;i++)printf("%c",mystring1.str[i]);printf("\n");//输出第二个字符串printf("字符串mystring2是:");for(i=0;i<mystring2.length;i++)printf("%c",mystring2.str[i]);printf("\n");//将字符串String2的头5个字符添加到String1的尾部,输出结果SubString(&mystring2,0,5,&mystring4);Insert(&mystring1,mystring1.length,mystring4);//查找串String3在String1中的位置,若String3在String1中不存在,//则插入String3在String1中的m位置上,输出结果for(i=0;i<mystring1.length;i++)printf("%c",mystring1.str[i]);printf("\n");BFIndex(mystring1,0,mystring3);printf("\n");printf("\n");printf("\n");printf("\n");max1=12,max2=10,max3=3,max4=0;//初始化Initiate(&mystring1,max1,"structArcBox");Initiate(&mystring2,max2,"VertexType");Initiate(&mystring3,max3,"Box");Initiate(&mystring4,max4,"");//建立两个字符串String1和String2,输出两个字符串printf("字符串mystring1是:");for(i=0;i<mystring1.length;i++)printf("%c",mystring1.str[i]);printf("\n");//输出第二个字符串printf("字符串mystring2是:");for(i=0;i<mystring2.length;i++)printf("%c",mystring2.str[i]);printf("\n");//将字符串String2的头5个字符添加到String1的尾部,输出结果SubString(&mystring2,0,5,&mystring4);Insert(&mystring1,mystring1.length,mystring4);//查找串String3在String1中的位置,若String3在String1中不存在,//则插入String3在String1中的m位置上,输出结果for(i=0;i<mystring1.length;i++)printf("%c",mystring1.str[i]);printf("\n");BFIndex(mystring1,0,mystring3);printf("\n");Destroy(&mystring4);}测试情况:(1)程序运行输出为:(2)测试结果分析:程序运行结果和人工模拟分析过程完全相同,说明程序设计正确;。

任务实训9 字符串处理

任务实训9  字符串处理

任务实训9 字符串处理一、实训目的通过本次实验,掌握Java中关于字符串处理的两个类String类和StringBuffer类的使用方法。

二、实训内容1、通过程序改错,掌握String类和StringBuffer类中一些常用方法。

2、通过编程练习,进一步掌握字符串处理类的使用方法。

三、实训步骤第一:新建一个名为chapter11的工程,保存路径在为“D:\学号+姓名(用拼音)\ chapter11”文件夹下。

第二:程序改错。

下面程序实现的是字符串的创建以及字符串中一些常见方法的使用。

将程序中的错误改正,使之能显示出正确的结果。

算法分析:1) String类的主要构造函数有四种。

package ch11;public class StringExam{public static void main(String args[]){String s1=new String(This is an demo of the String method.);char c[]={'a','b','c'};String s2=new String(c[]);String s3=new String(c[],0,2);System.out.println("s1="+s1);System.out.println("s2="+s2);System.out.println("s3="+s3);System.out.println("Length: "+s1.length);System.out.println("SubString: "+s1.substring (11,15));}}第三:编程题。

1、利用下面的关键代码编写一个完整的程序,理解StringBuffer类的使用。

实验 字符串操作

实验 字符串操作

实验四字符串操作一、实验目的1.练习使用字符串操作类指令2.掌握字符串操作类指令的寻址方式二、实验环境1.硬件:PC微机2.软件:DOS系统、EDIT.EXE、MASM.EXE、LINK.EXE、DEBUG.EXE三、实验内容1.实验题目将数据段BLOCK中的16个数据按正负数分开存储,正数(包含0)存放在DPLUS中,负数存放在DMINUS中。

2.编程提示(1)取数使用LODSB,从DS:[SI]中取一个字节数据到AL中。

(2)使用TEST AL,80H,判断AL的符号位是0还是1(3)存数使用STOSB,将AL中的数据存入ES:[DI]。

3.参考程序STACK SEGMENT STACKDW 256 DUP (?)TOP LABEL WORDSTACK ENDSDA TA SEGMENTBLOCK DB 56H,23H,5AH,6FH,88H,95H,7FH,0F1HDB 81H,0E5H,0A1H,5DH,87H,65H,23H,19HDPLUS DB 16 DUP (0)DMINUS DB 16 DUP (0)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXMOV SP,OFFSET TOPLEA SI,BLOCKLEA DI,DPLUSLEA BX,DMINUSMOV CX,10HCLDNEXT:LODSBTEST AL,80HJNZ MINUSSTOSBJMP AGAINMINUS:XCHG BX,DISTOSBXCHG BX,DIAGAIN:LOOP NEXTDONE:MOV AH,4CHINT 21HCODE ENDSEND START4.调试(1)用U命令进行反汇编,查看BLOCK、DPLUS、DMINUS在数据段中的偏移量。

实验九 字符数组与字符串

实验九 字符数组与字符串

实验九字符数组与字符串----a8d33429-6eaf-11ec-8d4d-7cb59b590d7d实验九字符数组与字符串实验9:字符数组和字符串实验名称:字符数组与字符串成绩:实验日期:年月日实验报告日期:年月日一、实验目的1、理解字符数组和字符串的概念。

2.掌握字符数组的定义、初始化、数组元素引用、输入输出。

3.主字符数组处理4。

掌握常用字符串处理功能二、实验内容1.编程:反转键盘输入的字符串。

逆序后的字符串仍保留在原始字符数组中后输出。

(不得调用任何字符串处理函数,包括strlen)例如:输入helloworld输出dlrowolleh2.编程:连接键盘输入的两个字符串。

(虽然我们知道strcat()可以轻松完成这项任务,本题仍然规定不得调用任何字符串处理函数,包括strlen)。

例如:输入helloworld,输出helloworld3.编程:对于从键盘输入的任何字符串,将所有大写字母更改为小写字母,并将所有小写字母更改为小写字母字母改为大写字母,其它字符不变。

(不调用任何字符串处理函数)例如:输入:helloworld!输出:helloworld!4.编程:从键盘输入4个字符串(长度<20),并将其存储在二维字符数组中。

然后把它们安排好序(假设由小到大顺序),最后输出排序后的4个字符串。

(允许使用字符串函数)提示:字符串比较可以用strcmp函数实现,排序方法可以选择法或冒泡法。

三、实验要求1、绘制框图、编制源程序,测试数据。

2.问题1-3不允许使用字符串处理功能,问题4允许使用字符串处理功能。

3、在turboc下完成程序的编辑、编译、运行。

查看、分析程序结果。

四、实验步骤和过程1、编辑、编译、运行程序题1。

使用数据:helloworld做测试。

2.编辑、编译和运行程序问题2。

使用数据:HelloWorld进行测试。

3.编辑、编译和运行程序问题3。

使用数据:HelloWorld进行测试。

字符串的模式匹配实验报告

字符串的模式匹配实验报告

实验题目:字符串的模式匹配一、实验描述用BF算法实现字符串的模式匹配二、实验目的和任务从主串的第pos位置字符开始和模式子串字符比较,如果相等,则继续逐个比较后续字符;否则从主串的下一个字符起再重新和模式子串的字符比较。

直到找到匹配字符串或者是主串结尾。

三、概要设计BF(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。

四、运行与测试#include <stdio.h>#include <string.h>int BFMatch(char *s,char *p){int i,j;i =0;while(i < strlen(s)){j = 0;while(s[i] == p[j] &&j<strlen(p)){i++;j++;}if(strlen(p) == j){return i - strlen(p);}i = i - j + 1; // 指针i回溯}return -1;}int main(){char *szSource = "ababcababa";char *szSub = "ababa";int index =BFMatch(szSource, szSub);printf("目标串包含匹配串的起始位置:%d",index);}五、运行结果六、实验心得通过这次课程设计,让我了解了字符串的定位操作即字符串模式匹配的基本概念和算法,探讨了字符串模式匹配操作的最基本的BF匹配算法。

虽然看起来很简单的程序,做起来却遇到了不少问题,编程中出行了一些小错误,多次查改之后再进行修改,所以我觉得在以后的学习中,我会更加注重实践,注重多练,多积累。

实验九 列表与字符串操作实验

实验九 列表与字符串操作实验

实验九列表与字符串操作实验一、实验目的1.掌握列表的存储结构;2.掌握记录定义伪指令与结构定义伪指令的使用方法;3.掌握列表的插入、删除方法;4.掌握列表的排序、检索方法;5.掌握字符串的基本运算和组合运算方法;二、实验要求1.学会使用串操作指令在有序表或无序表中插入一个元素;2.学会使用串操作指令在有序表或无序表中删除一个元素;3.学会使用交换排序和插入排序方法对无序表进行排序;4.学会使用顺序检索、折半检索方法在无序表和有序表中查找元素;5.学会在字符串中插入、删除、查找或替换一个字符;6.学会使用串操作指令对字符串进行求串长、两串比较、两串连接、取子串等基本运算。

三、实验举例【例3.9】设从DATA开始的内存单元中,连续存放着20个十进制无符号字节数据,请用交换排序法将它们排成升序。

【解题思路】采用循环的方式,从第一个数据开始,依次与下一个数据进行比较,如果前一个数据大,则与下一个数据交换位置。

按照此方法,第1个数据与第2个数据比较,第2个数据与第3个数据比较,第3个数据与第4个数据比较,依次类推,直到比较完所有的数据。

比较过程中,如果两个数据交换位置,发生了交换操作,则重复上述的比较过程,如果没有交换操作,则表示排序已经完成。

【步骤一】启动EDIT编辑器,编辑源程序。

程序清单如下:DSEG SEGMENTLIST DW 9435H,6248H,5835H,4734H,8965H,7227H,8727H,2846H,5638H,4932HLENT DB 10DSEG ENDSSSEG SEGMENT STACKSTK DB 20 DUP(0)SSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,SS:SSEGSTART: MOV AX,DSEGMOV DS,AXMOV CH,LENTDEC CHX1: MOV SI,OFFSET LISTMOV CL,CHXOR BL,BLX2: MOV AX,[SI]CMP AX,[SI+2]JBE X3MOV DX,[SI+2]MOV [SI+2],AXMOV [SI],DXOR BL,01X3: ADD SI,2DEC CLJNZ X2AND BL,BLJZ STOPDEC CHJNZ X1STOP: MOV AH,4CHINT 21HCSEG ENDSEND START源程序输入完后,以EXAM9.ASM为文件名存入磁盘,进行下一步操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验九字符串程序设计
班级:学号:姓名:评分:
一.【实验目的】
1、熟练掌握字符串的存取和操作方法方法。

2、进一步掌握C程序的调试方法和技巧。

二.【实验内容和步骤】
1、程序调试题
A.目标:进一步学习掌握程序调试的方法和技巧。

B.内容:参照《实验指导》教材P71“1.调试示例”,从键盘输入一个以回车键结束的字符串(少于80个字符),将它的内容逆向输出。

例如:输入“ABCD”,输出“DCBA”。

改正程序中的错误,使其实现程序的功能。

(注:程序文件保存在“调试示例”文件夹中,文件名为error08_1.cpp)
①调试正确的源程序清单
#include <stdio.h>
int main( )
{
int i, k, temp;
char str[80];
printf("input a string: \n");
i = 0;
while((str[i] = getchar( )) != '\n')
i++;
str[i] = '\0';
k = i - 1;
for(i = 0; i < k; i++){ /* 调试时设置断点 */
temp = str[i];
str[i] = str[k];
str[k] = temp;
k--;
} /* 调试时设置断点 */
for(i = 0; str[i] != '\0'; i++)
putchar(str[i]);
printf("\n");
return 0;
}
②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。

2、完善程序,并调试运行程序
题目(1)求字符串长度。

程序功能:连续输入一批以#结束的字符串(字符串的长度不超过80),遇## 则全部输入结束。

统计并输出每个字符串的有效长度。

例如:输入:hello 12#abc+0##,表示连续输入2个字符串"hello
12"和"abc+0"。

输出:8 5。

(注:程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线
之间填入相应的代码,使程序完成该功能。

①调试正确的源程序清单
//程序功能:连续输入一批以#结束的字符串(字符串的长度不超过80),遇## 则全部输入结束,统计并输出
// 每个字符串的有效长度。

例如:
// 输入:hello 12#abc+0##,表示连续输入2个字符串"hello 12"和"abc+0"。

// 输出:8 5。

//提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。

#include "stdio.h"
#define MAXLEN 80
int main( )
{
int len,count,i,k;
char ch,oldch,str[MAXLEN];
oldch=' ';
while((ch=getchar())!='#'||oldch!='#')
{
k=0;
while(ch!='#'&& k< MAXLEN-1)
{
str[k++]=ch;
ch=getchar();
}
oldch='#';
str[k]='\0';
//请在两条星线之间填入相应的代码, 输出该字符串并统计其长度。

/*********************************************************/
len=0;
k=0;
while(str[k]!='\0'){
len++;
k++;
}
/*********************************************************/
printf("%d\n",len);
}
}
②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。

相关文档
最新文档