实验报告四:字符串实验
串的应用实验报告小结
![串的应用实验报告小结](https://img.taocdn.com/s3/m/d5ed5d9781eb6294dd88d0d233d4b14e84243e12.png)
串的应用实验报告小结一、引言串(String)是计算机程序设计中的一种基本数据类型,它是由字符组成的一串数据。
在计算机程序设计中,串的应用非常广泛,无论是在文本处理、数据传输、网络通信还是用户界面设计等方面,均有着重要的应用。
本实验旨在探究串在实际应用中的具体实验方法和效果,通过对串的应用进行实验研究,进一步掌握串的相关知识和技能。
二、实验目的1. 理解串的基本概念和操作方法;2. 探究串在实际应用中的具体场景和功能;3. 掌握串的实际应用技巧和效果;4. 深入理解串在计算机程序设计中的重要作用。
三、实验方法和过程1. 实验工具和材料:本实验使用Java语言进行编程实现,利用Eclipse集成开发环境(IDE)进行代码编写和调试。
2. 实验过程:(1)首先进行了对串的基本概念和操作进行了学习,包括串的定义、字符串的长度、连接字符串、子串截取、字符串的比较等基本操作。
(2)根据实验要求,选择了不同的具体应用场景进行实验设计,包括文本处理、数据加密解密、用户界面设计等方面。
(3)按照实验指导书的要求,利用Java语言编写程序,实现了串在不同场景下的应用,包括文本处理、数据加密解密、用户界面设计等功能。
(4)通过调试和测试,验证了各种具体应用场景下串的使用效果和功能,对实验结果进行了记录和分析。
四、实验结果和分析1. 文本处理:通过对待处理文本的读取、处理、输出,串的应用可以有效地实现对文本内容的编辑和操作,便于实现诸如文本搜索、替换、格式化等功能。
2. 数据加密解密:利用串进行数据加密解密操作,可以有效地保护数据的安全性,对数据传输和存储等方面具有重要意义。
3. 用户界面设计:串的应用在用户界面设计中起到了关键作用,通过串的拼接、格式化等操作,可以实现界面元素的动态展示和交互效果。
五、实验心得与体会通过本次实验,我进一步理解了串在计算机程序设计中的重要作用和广泛应用场景。
深入学习了串的相关操作技巧和实际应用方法,对串的应用有了更加深入的认识。
字符及字符串输入输出与顺序程序设计实验报告
![字符及字符串输入输出与顺序程序设计实验报告](https://img.taocdn.com/s3/m/093122300b4c2e3f57276330.png)
字符及字符串输入输出与顺序程序设计实验实验报告2.2.1 实验目的1、学习和掌握字符及字符串的输入输出方法。
2、掌握顺序程序的设计方法。
3、进一步掌握调试工具的使用方法。
2.2.2 实验预习要求1、复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。
2、复习BCD码运算调整指令。
3、根据“2.2.3 实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。
4、从“2.2.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
2.2.3实验内容从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。
1、问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。
由于数字0 9的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示出来。
综上所述,需要考虑以下问题。
(1)从键盘输入一个一位十进制数的方法通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下:MOV AH, 01HINT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值(2)提示信息字符串的显示通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。
【2017年整理】字符串实验报告
![【2017年整理】字符串实验报告](https://img.taocdn.com/s3/m/8614ad1786c24028915f804d2b160b4e767f81ee.png)
【2017年整理】字符串实验报告文中“字符串实验报告”是一个有关字符串的实验研究。
本篇报告将结合实际测试结果,概述字符串及其操作方面的实验进行,以此来获取字符串的重要性及其在今天的应用。
首先介绍字符串的概念。
字符串是由字符存储的一串字符的集合。
它可以包含字母、数字、空格和符号等,可用于标识、存储或输出信息。
任何编程语言中的每个字符串都在正确的语言环境中使用。
我们的实验分为两部分。
第一部分将包括字符串的定义、存储空间和字符串的操作。
第二部分将探讨字符串和其它数据类型之间的转换。
完成这项实验,首先,我们必须创建一系列字符串以表明字符串的存储位置和字符串的操作方法。
我们使用了C语言在Xcode集成开发环境中应用字符串的实验,以获得更好的理解。
通过编程,我们可以知道字符串的存储位置,它是存储在内存中,可以创建一个存储长度可以让字符串变长。
此外,我们还可以定义不同字符串长度的不同字符串,这就是定义字符串的内存位置。
此外,我们还学习了在C编程语言中字符串操作中使用的一些函数,如strcpy()、strcat()、strcmp()、strlen()、strrev()等。
第二部分实验探讨字符串和其它数据类型之间的转换。
我们采用的是C语言,新的函数会加入到实验中。
两种最常见的函数:atoi()和 itoa(),可以将一个字符串转换为int 类型,或者将一个int类型转换为字符串。
另外,函数 sprintf() 和 sprintf_s() 可以将字符串转换为其他格式,或者将其他格式转换为字符串。
通过实验,我们对字符串有了更深入的理解,学会了如何定义字符串,以及如何进行字符串操作。
此外,我们还探索了一些技巧,可以将字符串转换为数字或其他格式,使之成为今天应用程序中更广泛使用的操作。
经过实验,我们发现字符串在信息存储、处理和输出,以及数据转换方面有着重要的作用。
今后在编程过程中使用字符串的技术分析,能更准确地满足用户的实际需求,有助于提高软件质量及应用程序的性能。
java编程实验报告
![java编程实验报告](https://img.taocdn.com/s3/m/a2afd781d4bbfd0a79563c1ec5da50e2524dd1fa.png)
java编程实验报告Java编程实验报告引言:Java是一种广泛应用于软件开发领域的高级编程语言,具有跨平台、面向对象、安全性高等特点。
本篇文章将介绍我在Java编程实验中的实践和收获。
实验一:Hello World程序在本实验中,我学习了如何使用Java编写一个简单的Hello World程序。
通过这个实验,我了解了Java的基本语法和程序结构。
在编写过程中,我发现Java的语法规范相对严格,需要注意语句的结束符号和代码的缩进。
通过运行程序,我成功输出了"Hello World"这个简单的字符串,这让我对Java编程的基本流程和语法有了更深入的了解。
实验二:变量与运算符在本实验中,我学习了Java中的变量和运算符的使用。
通过编写程序,我实现了对不同类型的变量进行声明和赋值,并进行基本的运算操作。
在这个过程中,我发现Java的变量需要先声明后使用,而且在进行运算时需要注意数据类型的匹配。
通过这个实验,我对Java中的变量和运算符有了更深入的理解。
实验三:条件语句与循环结构在本实验中,我学习了Java中的条件语句和循环结构的使用。
通过编写程序,我实现了对不同条件进行判断,并根据不同的条件执行相应的操作。
同时,我还学习了循环结构的使用,通过循环语句实现了对一段代码的重复执行。
在这个实验中,我发现条件语句和循环结构是Java编程中非常重要的部分,能够帮助程序实现更复杂的逻辑。
实验四:数组和字符串在本实验中,我学习了Java中数组和字符串的使用。
通过编写程序,我实现了对数组和字符串的声明、赋值和操作。
在这个过程中,我发现Java中的数组和字符串是一种非常方便的数据结构,能够帮助程序处理大量的数据。
通过这个实验,我对Java中数组和字符串的使用有了更深入的了解。
实验五:面向对象编程在本实验中,我学习了Java中的面向对象编程的基本概念和使用。
通过编写程序,我实现了对类的定义、对象的创建和方法的调用。
c语言实验报告实验
![c语言实验报告实验](https://img.taocdn.com/s3/m/3861552ec950ad02de80d4d8d15abe23492f0375.png)
c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
串操作实验报告
![串操作实验报告](https://img.taocdn.com/s3/m/2921b095c0c708a1284ac850ad02de80d4d806db.png)
串操作实验报告
《串操作实验报告》
实验目的:通过对串操作的实验,掌握串的基本操作方法,提高对串操作的理解和掌握。
实验材料:计算机、编程软件、实验指导书。
实验步骤:
1. 字符串的输入输出:首先,我们学习了如何通过编程软件向计算机输入字符串,并且通过编程实现将字符串输出到屏幕上。
这一步骤帮助我们了解了如何使用编程语言来操作字符串。
2. 字符串的拼接:接着,我们学习了如何将两个字符串进行拼接。
通过实验,我们发现可以通过简单的加号操作符来实现字符串的拼接,这为我们在日后的编程中提供了很大的便利。
3. 字符串的截取:在实验中,我们还学习了如何通过编程语言来截取字符串的部分内容。
这一步骤让我们对于字符串的操作更加灵活,可以根据需要来截取所需的内容。
4. 字符串的比较:最后,我们学习了如何通过编程语言来比较两个字符串的内容。
这一步骤让我们对于字符串的比较有了更深入的理解,可以通过比较来判断字符串是否相等,或者哪个字符串的内容更大。
实验结果:通过这次实验,我们对于串操作有了更加深入的理解和掌握。
我们可以通过编程语言来实现对字符串的输入输出、拼接、截取和比较等操作,为日后的编程工作打下了坚实的基础。
结论:串操作是编程中非常重要的一部分,通过这次实验,我们对于串操作有
了更加深入的理解和掌握。
希望在日后的编程工作中能够更加灵活地运用串操作,提高编程效率和质量。
串的应用实验报告小结
![串的应用实验报告小结](https://img.taocdn.com/s3/m/2906663b5bcfa1c7aa00b52acfc789eb172d9edd.png)
串的应用实验报告小结实验目的:本实验旨在探索串的应用,并通过实际操作,加深对串的理解和应用能力。
实验原理:串是计算机中常用的数据类型,表示一个字符序列。
在实际应用中,串具有很强的灵活性和实用性,可以用于字符串的处理、文本处理、数据传输等场景。
串的基本操作包括串的定义、串的赋值、串的连接、串的比较、串的查找、串的替换等。
实验仪器和材料:编程环境:本实验使用Python编程语言进行实验操作。
实验过程中需要使用字符串处理相关的函数和方法。
实验步骤:1. 串的定义与赋值:首先介绍串的定义方法,并进行一些基本的赋值操作,包括直接赋值和通过输入获取串的赋值。
2. 串的连接:实现两个串的连接操作,了解串的拼接方式及其应用场景。
3. 串的比较:通过比较两个串的内容,了解串的比较操作及其返回值的含义。
4. 串的查找与替换:实现对串的查找和替换操作,掌握相关函数的用法并思考其实际应用。
实验结果:通过本次实验,我对串的相关操作有了更深入的了解。
掌握了串的基本定义、赋值、连接、比较、查找和替换等操作,并能够将其应用到实际问题中。
在实验过程中,我学会了如何利用串来处理文本数据,进行查找和替换操作,以及如何利用串的连接来构造更复杂的字符串。
这些知识和实践经验对我的编程能力和问题解决能力都有所提高。
实验总结:通过本次实验,我对串的基本概念和相关应用有了更深入的了解。
串作为计算机中重要的数据类型,在实际应用中有着广泛的应用场景,掌握了串的相关操作,将对我的日常编程工作和问题解决能力产生积极的影响。
串的处理能力将对字符串处理、文本处理、数据传输等方面有很大帮助。
结语:本次实验使我更加深入地理解了串的概念及其在实际应用中的作用。
通过在实验中动手操作,我对串的相关操作有了更深入的了解,相信这将对我的编程能力和问题解决能力有所提升。
我也意识到了串在计算机领域的重要性和广泛的应用前景,将积极应用串的相关知识到我的日常工作和学习中。
串-数据结构实验报告
![串-数据结构实验报告](https://img.taocdn.com/s3/m/062887b5afaad1f34693daef5ef7ba0d4b736d06.png)
串-数据结构实验报告串数据结构实验报告一、实验目的本次实验的主要目的是深入理解和掌握串这种数据结构的基本概念、存储方式以及相关的操作算法。
通过实际编程实现串的基本操作,提高对数据结构的理解和编程能力,培养解决实际问题的思维和方法。
二、实验环境本次实验使用的编程语言为C++,开发工具为Visual Studio 2019。
三、实验原理(一)串的定义串是由零个或多个字符组成的有限序列。
在本次实验中,我们主要关注的是字符串。
(二)串的存储方式1、顺序存储定长顺序存储:使用固定长度的数组来存储字符串,长度不足时用特定字符填充。
堆分配存储:根据字符串的实际长度动态分配存储空间。
2、链式存储每个节点存储一个字符,并通过指针链接起来。
(三)串的基本操作1、串的创建和初始化2、串的赋值3、串的连接4、串的比较5、求子串6、串的插入和删除四、实验内容及步骤(一)顺序存储方式下串的实现1、定义一个结构体来表示顺序存储的字符串,包含字符数组和字符串的实际长度。
```cppstruct SeqString {char str;int length;};```2、实现串的创建和初始化函数```cppSeqString createSeqString(const char initStr) {int len = strlen(initStr);SeqString s;sstr = new charlen + 1;strcpy(sstr, initStr);slength = len;return s;}```3、串的赋值函数```cppvoid assignSeqString(SeqString& s, const char newStr) {delete sstr;int len = strlen(newStr);sstr = new charlen + 1;strcpy(sstr, newStr);slength = len;}```4、串的连接函数```cppSeqString concatSeqString(const SeqString& s1, const SeqString& s2) {SeqString result;resultlength = s1length + s2length;resultstr = new charresultlength + 1;strcpy(resultstr, s1str);strcat(resultstr, s2str);return result;}```5、串的比较函数```cppint compareSeqString(const SeqString& s1, const SeqString& s2) {return strcmp(s1str, s2str);}```6、求子串函数```cppSeqString subSeqString(const SeqString& s, int start, int len) {SeqString sub;sublength = len;substr = new charlen + 1;strncpy(substr, sstr + start, len);substrlen ='\0';return sub;}```7、串的插入函数```cppvoid insertSeqString(SeqString& s, int pos, const SeqString& insertStr) {int newLength = slength + insertStrlength;char newStr = new charnewLength + 1;strncpy(newStr, sstr, pos);strcpy(newStr + pos, insertStrstr);strcpy(newStr + pos + insertStrlength, sstr + pos);delete sstr;sstr = newStr;slength = newLength;}```8、串的删除函数```cppvoid deleteSeqString(SeqString& s, int start, int len) {int newLength = slength len;char newStr = new charnewLength + 1;strncpy(newStr, sstr, start);strcpy(newStr + start, sstr + start + len);delete sstr;sstr = newStr;slength = newLength;}```(二)链式存储方式下串的实现1、定义一个节点结构体```cppstruct LinkNode {char data;LinkNode next;LinkNode(char c) : data(c), next(NULL) {}};```2、定义一个链式存储的字符串类```cppclass LinkString {private:LinkNode head;int length;public:LinkString(const char initStr);~LinkString();void assign(const char newStr);LinkString concat(const LinkString& other);int compare(const LinkString& other);LinkString subString(int start, int len);void insert(int pos, const LinkString& insertStr);void deleteSub(int start, int len);};```3、实现各个函数```cppLinkString::LinkString(const char initStr) {length = strlen(initStr);head = NULL;LinkNode p = NULL;for (int i = 0; i < length; i++){LinkNode newNode = new LinkNode(initStri);if (head == NULL) {head = newNode;p = head;} else {p>next = newNode;p = p>next;}}}LinkString::~LinkString(){LinkNode p = head;while (p) {LinkNode temp = p;p = p>next;delete temp;}}void LinkString::assign(const char newStr) {//先释放原有的链表LinkNode p = head;while (p) {LinkNode temp = p;p = p>next;delete temp;}length = strlen(newStr);head = NULL;p = NULL;for (int i = 0; i < length; i++){LinkNode newNode = new LinkNode(newStri);if (head == NULL) {head = newNode;p = head;} else {p>next = newNode;p = p>next;}}}LinkString LinkString::concat(const LinkString& other) {LinkString result;LinkNode p1 = head;LinkNode p2 = otherhead;LinkNode p = NULL;while (p1) {LinkNode newNode = new LinkNode(p1->data);if (resulthead == NULL) {resulthead = newNode;p = resulthead;} else {p>next = newNode;p = p>next;}p1 = p1->next;}while (p2) {LinkNode newNode = new LinkNode(p2->data);if (resulthead == NULL) {resulthead = newNode;p = resulthead;} else {p>next = newNode;p = p>next;}p2 = p2->next;}resultlength = length + otherlength;return result;}int LinkString::compare(const LinkString& other) {LinkNode p1 = head;LinkNode p2 = otherhead;while (p1 && p2 && p1->data == p2->data) {p1 = p1->next;p2 = p2->next;}if (p1 == NULL && p2 == NULL) {return 0;} else if (p1 == NULL) {return -1;} else if (p2 == NULL) {return 1;} else {return p1->data p2->data;}}LinkString LinkString::subString(int start, int len) {LinkString sub;LinkNode p = head;for (int i = 0; i < start; i++){p = p>next;}for (int i = 0; i < len; i++){LinkNode newNode = new LinkNode(p>data);if (subhead == NULL) {subhead = newNode;} else {LinkNode temp = subhead;while (temp>next) {temp = temp>next;}temp>next = newNode;}p = p>next;}sublength = len;return sub;}void LinkString::insert(int pos, const LinkString& insertStr) {LinkNode p = head;for (int i = 0; i < pos 1; i++){p = p>next;}LinkNode insertHead = insertStrhead;while (insertHead) {LinkNode newNode = new LinkNode(insertHead>data);newNode>next = p>next;p>next = newNode;p = p>next;insertHead = insertHead>next;}length += insertStrlength;}void LinkString::deleteSub(int start, int len) {LinkNode p = head;for (int i = 0; i < start 1; i++){p = p>next;}LinkNode temp = p>next;for (int i = 0; i < len; i++){LinkNode delNode = temp;temp = temp>next;delete delNode;}p>next = temp;length = len;}```(三)测试用例1、顺序存储方式的测试```cppint main(){SeqString s1 = createSeqString("Hello");SeqString s2 = createSeqString("World");SeqString s3 = concatSeqString(s1, s2);std::cout <<"连接后的字符串: "<< s3str << std::endl; int cmpResult = compareSeqString(s1, s2);if (cmpResult < 0) {std::cout <<"s1 小于 s2" << std::endl;} else if (cmpResult == 0) {std::cout <<"s1 等于 s2" << std::endl;} else {std::cout <<"s1 大于 s2" << std::endl;}SeqString sub = subSeqString(s1, 1, 3);std::cout <<"子串: "<< substr << std::endl; insertSeqString(s1, 2, s2);std::cout <<"插入后的字符串: "<< s1str << std::endl; deleteSeqString(s1, 3, 2);std::cout <<"删除后的字符串: "<< s1str << std::endl; return 0;}```2、链式存储方式的测试```cppint main(){LinkString ls1("Hello");LinkString ls2("World");LinkString ls3 = ls1concat(ls2);std::cout <<"连接后的字符串: ";LinkNode p = ls3head;while (p) {std::cout << p>data;p = p>next;}std::cout << std::endl;int cmpResult = ls1compare(ls2);if (cmpResult < 0) {std::cout <<"ls1 小于 ls2" << std::endl;} else if (cmpResult == 0) {std::cout <<"ls1 等于 ls2" << std::endl;} else {std::cout <<"ls1 大于 ls2" << std::endl;}LinkString sub = ls1subString(1, 3);std::cout <<"子串: ";p = subhead;while (p) {std::cout << p>data;p = p>next;}std::cout << std::endl;ls1insert(2, ls2);std::cout <<"插入后的字符串: ";p = ls1head;while (p) {std::cout << p>data;p = p>next;}std::cout << std::endl;ls1deleteSub(3, 2);std::cout <<"删除后的字符串: ";p = ls1head;while (p) {std::cout << p>data;p = p>next;}std::cout << std::endl;return 0;}```五、实验结果及分析(一)顺序存储方式1、连接操作成功实现,输出了正确连接后的字符串。
串的存储实验报告(3篇)
![串的存储实验报告(3篇)](https://img.taocdn.com/s3/m/a7efe263e97101f69e3143323968011ca200f75f.png)
第1篇一、实验目的1. 理解串的概念及其在计算机中的应用。
2. 掌握串的存储方式及其在C语言中的实现。
3. 熟悉串的基本操作,如串的创建、串的复制、串的连接等。
4. 通过实验验证串操作的准确性和效率。
二、实验原理1. 串(String)是由零个或多个字符组成的有限序列,是计算机中常用的非数值数据类型。
2. 串的存储方式主要有两种:顺序存储和链式存储。
3. 顺序存储是将串的字符序列存储在一段连续的内存空间中,通过数组来实现。
4. 链式存储则是通过链表来实现,每个节点存储一个字符,节点之间通过指针连接。
三、实验环境1. 操作系统:Windows 102. 编程语言:C3. 编译器:Visual Studio 2019四、实验内容1. 创建一个串,并对其进行初始化。
2. 复制一个串,并验证复制的串与原串内容相同。
3. 连接两个串,并验证连接后的串内容。
4. 实现串的插入、删除、查找等操作。
5. 对串进行排序,如按字典序排序。
五、实验步骤1. 创建一个串```cinclude <stdio.h>include <stdlib.h>include <string.h>define MAX_SIZE 100typedef struct {char data[MAX_SIZE];int length;} String;// 创建串String createString(const char str) { String s;strcpy(s.data, str);s.length = strlen(str);return s;}```2. 复制一个串```c// 复制串String copyString(const String s) { String t;strcpy(t.data, s.data);t.length = s.length;return t;}```3. 连接两个串```c// 连接两个串String concatString(const String s1, const String s2) { String s;strcpy(s.data, s1.data);strcat(s.data, s2.data);s.length = s1.length + s2.length;return s;}```4. 实现串的插入、删除、查找等操作```c// 插入字符void insertChar(String s, int pos, char ch) {if (pos < 0 || pos > s->length) {printf("Insert position is invalid.\n");return;}for (int i = s->length; i >= pos; i--) {s->data[i + 1] = s->data[i];}s->data[pos] = ch;s->length++;}// 删除字符void deleteChar(String s, int pos) {if (pos < 0 || pos >= s->length) {printf("Delete position is invalid.\n"); return;}for (int i = pos; i < s->length - 1; i++) { s->data[i] = s->data[i + 1];}s->length--;}// 查找字符int findChar(const String s, char ch) {for (int i = 0; i < s.length; i++) {if (s.data[i] == ch) {return i;}}return -1;}```5. 对串进行排序```c// 字典序排序void sortString(String s) {for (int i = 0; i < s->length - 1; i++) {for (int j = i + 1; j < s->length; j++) {if (s->data[i] > s->data[j]) {char temp = s->data[i];s->data[i] = s->data[j];s->data[j] = temp;}}}}```六、实验结果与分析1. 创建串、复制串、连接串等操作均能正常进行,验证了串的存储和操作的正确性。
串操作实验报告
![串操作实验报告](https://img.taocdn.com/s3/m/7edabc24fc4ffe473368abe9.png)
竭诚为您提供优质文档/双击可除串操作实验报告篇一:顺序串的基本操作实验报告宁波工程学院电信学院计算机教研室实验报告课程名称:数据结构实验项目:顺序串的基本操作实验人员:徐浩学号:10401010209班级:计科102指导教师:宋宏图实验位置:计算机中心二楼实验日期:20XX-10-13一、实验目的1)熟悉串的定义和串的基本操作。
2)掌握顺序串的基本运算。
3)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。
二、实验环境装有Visualc++6.0的计算机。
本次实验共计2学时。
三、实验内容编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。
具体如下:编写栈的基本操作函数顺序串类型定义如下所示:typedefstruct{charch[mAxsIZe];intlen;}seqstring;(1)串赋值Assign(s,t)?将一个字符串常量赋给串s,即生成一个其值等于t的串s(2)串复制strcopy(s,t)?将串t赋给串s(3)计算串长度strLength(s)?返回串s中字符个数(4)判断串相等strequal(s,t)?若两个串s与t相等则返回1;否则返回0。
(5)串连接concat(s,t)?返回由两个串s和t连接在一起形成的新串。
(6)求子串substr(s,i,j)?返回串s中从第i(1≤i≤strLength((:串操作实验报告)s))个字符开始的、由连续j个字符组成的子串。
(7)插入Insstr(s,i,t)?将串t插入到串s的第i(1≤i≤strLength(s)+1)个字符中,即将t的第一个字符作为s的第i个字符,并返回产生的新串(8)串删除Delstr(s,i,j)?从串s中删去从第i(1≤i≤strLength(s))个字符开始的长度为j的子串,并返回产生的新串。
(9)串替换Repstr(s,s1,s2)?在串s中,将所有出现的子串s1均替换成s2。
(10)输出串Dispstr(s)?输出串s的所有元素值(11)判断串是否为空Isempty(s)编写主函数调用上述函数实现下列操作:(1)建立串s=“abcdefghijklmn”,串s1=“xyz”,串t=“hijk”(2)复制串t到t1,并输出t1的长度(3)在串s的第9个字符位置插入串s1而产生串s2,并输出s2(4)删除s第2个字符开始的5个字符而产生串s3,并输出s3(5)将串s第2个字符开始的3个字符替换成串s1而产生串s4,s4(6)提取串s的第8个字符开始的4个字符而产生串s5,并输出s5(7)将串s1和串t连接起来而产生串s6,并输出s6 (8)比较串s1和s5是否相等,输出结果程序:#include#definemAxsIZe100typedefstruct{charch[mAxsIZe];intlen;}sqstring;voidstrAssign(sqstringfor(i=0;t[i]!=\0;i++)s.ch[i]=t[i];s.len=i;}voidstrcopy(sqstring并输出for(i=0;i s.ch[i]=t.ch[i];s.len=t.len;}voidstrequal(sqstrings,sqstringt){//判断串相等intsame=1,i;if(s.len!=t.len){same=0;}else{for(i=0;i if(s.ch[i]!=t.ch[i]){same=0;break;}}if(same==0)printf("s1,s5不相等");elseprintf("s1,s5相等");printf("\n");}voidstrLength(sqstrings){//计算串长度printf("t1的长度:");printf("%d",s.len);printf("\n");}sqstringconcat(sqstrings,sqstringt){//串连接sqstringstr;inti;str.len=s.len+t.len;for(i=0;i str.ch[i]=s.ch[i];for(i=0;i str.ch[s.len+i]=t.ch[i];returnstr;}sqstringsubstr(sqstrings,inti,intj){//求子串sqstringstr;intk;str.len=0;if(is.len||js.len)returnstr;for(k=i-1;k str.ch[k-i+1]=s.ch[k];str.len=j;returnstr;}sqstringInsstr(sqstrings1,inti,sqstrings2){//插入intj;sqstringstr;str.len=0;if(is1.len+1)returnstr;for(j=0;j str.ch[j]=s1.ch[j];for(j=0;j str.ch[i+j-1]=s2.ch[j];for(j=i-1;j str.ch[s2.len+j]=s1.ch[j];str.len=s1.len+s2.len;returnstr;}sqstringDelstr(sqstrings,inti,intj){//删除intk;sqstringstr;str.len=0;if(is.len||i+j>s.len+1)returnstr;for(k=0;k str.ch[k]=s.ch[k];for(k=i+j-1;k str.ch[k-j]=s.ch[k];str.len=s.len-j;returnstr;sqstringRepstr(sqstrings,inti,intj,sqstringt){//替换intk;sqstringstr;str.len=0;if(is.len||i+j-1>s.len)returnstr;for(k=0;k str.ch[k]=s.ch[k];for(k=0;k str.ch[i+k-1]=t.ch[k];for(k=i+j-1;k str.ch[t.len+k-j]=s.ch[k];str.len=s.len-j+t.len;returnstr;}voidDispstr(sqstrings){//输出串所有元素inti;if(s.len>0){for(i=0;i printf("%c",s.ch[i]);printf("\n");}}voidIsempty(sqstrings){//判断串是否为空if(s.len>0)printf("串不为空");elseprintf("串为空");printf("\n");}篇二:串实验报告篇三:字符串实验报告数据结构字符串实验班级:计算机应用技术10-1学号:10602101048姓名:姚福刚一、实验目的及要求:掌握有关字符串的基本操作和存储结构,并编写相应的基本操作算法。
数据类型实验报告(3篇)
![数据类型实验报告(3篇)](https://img.taocdn.com/s3/m/c6ba3a64a7c30c22590102020740be1e640ecc5a.png)
第1篇一、实验目的1. 理解和掌握基本数据类型的概念及特点。
2. 掌握不同数据类型的存储方式和表示方法。
3. 能够根据实际需求选择合适的数据类型。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.8.53. 开发工具:PyCharm三、实验内容1. 基本数据类型实验2. 复杂数据类型实验3. 数据类型转换实验四、实验步骤及结果1. 基本数据类型实验(1)实验目的:了解基本数据类型的概念及特点。
(2)实验步骤:① 定义变量并赋值:a = 10,b = 'hello',c = 3.14② 输出变量的类型:print(type(a)),print(type(b)),print(type(c))(3)实验结果:变量a的类型为int,变量b的类型为str,变量c的类型为float。
2. 复杂数据类型实验(1)实验目的:了解复杂数据类型的概念及特点。
(2)实验步骤:① 定义列表:list1 = [1, 2, 3, 'a', 'b', 'c']② 定义元组:tuple1 = (1, 2, 3, 'a', 'b', 'c')③ 定义字典:dict1 = {'name': 'Tom', 'age': 18, 'gender': 'male'}④ 定义集合:set1 = {1, 2, 3, 'a', 'b', 'c'}(3)实验结果:列表list1的类型为list,元组tuple1的类型为tuple,字典dict1的类型为dict,集合set1的类型为set。
3. 数据类型转换实验(1)实验目的:掌握不同数据类型之间的转换方法。
(2)实验步骤:① 将字符串转换为整数:str1 = '123',int1 = int(str1)②将整数转换为浮点数:int2 = 10,float1 = float(int2)③ 将浮点数转换为字符串:float2 = 3.14,str2 = str(float2)(3)实验结果:字符串str1转换为整数int1的结果为123,整数int2转换为浮点数float1的结果为10.0,浮点数float2转换为字符串str2的结果为'3.14'。
串的实验报告总结
![串的实验报告总结](https://img.taocdn.com/s3/m/8002535a2379168884868762caaedd3382c4b54e.png)
串的实验报告总结本次实验旨在研究串(String)数据类型在计算机编程中的应用。
通过对串的基本操作和常见算法进行实验,探索串在字符串处理、文本编辑等方面的实际应用。
本报告将总结实验过程、结果及结论,并提出对进一步研究的展望。
实验内容与方法1.实验内容本次实验主要包括以下内容:-字符串的输入和输出;-串的基本操作,如串的连接、截取、插入等;-串的模式匹配算法,如KMP算法;-串的排序算法,如快速排序。
2.实验方法为了完成上述实验内容,我们采用了以下方法:-使用编程语言(如C++、Java)来实现串数据类型及其相关操作;-设计测试样例,验证实现的正确性和效率;-运行程序,记录实验结果并进行分析。
实验结果与分析经过实验,我们得到了以下结果和分析:1.字符串的输入和输出操作实现了预期的功能,可以正确地读取和显示字符串数据。
2.串的基本操作(连接、截取、插入等)能够正确地处理字符串,并且具有良好的效率。
3.KMP算法作为一种高效的模式匹配算法,能够快速地在文本中搜索指定的模式串,并返回匹配结果。
4.快速排序算法作为一种常用的排序算法,在处理大量字符串数据时表现出了较高的效率。
结论与展望通过本次实验,我们对串数据类型及其基本操作和常见算法有了更深入的理解。
串在计算机编程中具有重要的应用价值,特别是在字符串处理和文本编辑方面。
实验结果显示,实现的串操作功能正常,并且在性能上达到了预期的要求。
然而,本次实验还有改进和拓展的空间。
首先,可以进一步研究优化串的操作效率,提升算法的执行速度。
其次,可以探索更多的串算法,如字符串匹配的其他算法(如BM算法、Trie树等)以及字符串压缩算法等。
此外,可以考虑将串的应用扩展到更多领域,如自然语言处理、数据挖掘等。
综上所述,本次实验对于串数据类型的研究和应用具有重要意义,为进一步深入探索串的应用提供了基础和启示。
我们期待未来在串的研究中取得更多的成果,并将其应用于实际的计算机编程和软件开发中。
字符串实验报告心得
![字符串实验报告心得](https://img.taocdn.com/s3/m/2c13c8d4534de518964bcf84b9d528ea80c72f51.png)
在进行字符串实验报告时,以下是一些心得和建议:清晰的实验目标:在撰写实验报告之前,确保你对实验的目标和研究问题有清晰的理解。
这有助于你在报告中提供准确的描述和分析。
结构化报告:一个良好结构化的实验报告可以使读者更容易理解你的实验设计、方法和结果。
确保报告包含以下部分:引言(背景和目的)、实验设计(包括样本和工具)、实验步骤、结果和讨论(分析结果、提供结论)。
准确的描述和量化结果:在结果部分中,详细描述实验结果并使用适当的统计工具进行量化分析。
这可以增加结果的可信度和可重复性。
图表和图像:使用图表和图像来直观地展示实验结果。
确保图表和图像标注清晰,包括坐标轴标签、图例和标题。
讨论和分析:在讨论部分中,对实验结果进行深入分析,并与相关文献进行比较和讨论。
解释结果的意义,提出可能的解释,并讨论实验的局限性和改进方向。
结论和总结:在结论部分中,简洁地总结实验的主要发现和结果。
提出对未来研究的建议,并强调实验的重要性和影响。
引用参考文献:确保在报告中引用使用到的参考文献。
这可以增加你报告的可信度,并为读者提供进一步阅读和了解的资源。
语言和风格:使用清晰、简明的语言撰写报告,避免使用模糊和含糊不清的表达。
注意语法、拼写和标点符号的正确性,使报告易于阅读和理解。
反思和总结:最后,在报告中加入你个人对实验的反思和总结。
包括你对实验过程和结果的感受、遇到的挑战以及可能的改进措施。
通过遵循上述建议,你可以撰写出一个有条理、准确且易于理解的字符串实验报告。
记住,实验报告不仅仅是对实验结果的描述,更是一个展示你的研究能力和科学方法的机会。
python程序设计字符串类型实验报告
![python程序设计字符串类型实验报告](https://img.taocdn.com/s3/m/631f63eb29ea81c758f5f61fb7360b4c2e3f2a8b.png)
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!"。
字符串实验报告
![字符串实验报告](https://img.taocdn.com/s3/m/a39570d1cd22bcd126fff705cc17552707225e8c.png)
一、实验目的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。
实验四 字符显示实验 实验报告
![实验四 字符显示实验 实验报告](https://img.taocdn.com/s3/m/79c5f6976e1aff00bed5b9f3f90f76c660374c72.png)
字符显示实验实验报告一、实验目的1. 了解液晶显示的基本原理2. 掌握如何通过单片机对LM016L显示模块的控制二、实验内容通过AT89C52单片机控制显示模块(液晶模块可以分别在上下显示两行不同的字符串)输出四段不同的字符,四段字符的显示通过四个外部的按钮控制。
按钮编号对应单片机接口显示的字符串显示效果1 P2.0 This is line12 P2.1 This is line23 P2.2 This is line34 P2.3 This is line4三、实验原理1. 通过P2口实现响应外部按钮控制原理:控制按钮的两端,其中一段连接单片机的P2口,另一端接地。
当按钮没有被按下时,按钮连接单片机一端相当于悬空(即高电平);当按钮被按下时,P2口相当于直接接地(即低电平),由此,可以通过判断P2的高低电平来判断某个按钮是否按下,继而实现对外部按钮的相应。
2. LM016L显示模块的初始化指令:①清屏指令:01H②显示模式设置:38H(设置为16x2显示,5x7点阵,8位数据接口)③0 0 0 0 1 D C BD:显示开关(1;B:光标是否闪烁(1有效)0 0 0 0 0 1 N SN:如果N为1S=1,N=1时,写入字符后整屏左移;S=0时,写入一个字符后整屏不移动。
3. LM016L的寄存器选择:通过RS,RW两个寄存器的选择位,控制数据写入或者读取的寄存器。
RS RW 操作说明0 0 写操作指令(写入指令寄存器)0 1 读取busy Flag和位址计数器1 0 写字型(写入数据寄存器)1 1 从数据寄存器读取数据四、实验过程1. 连接好单片机及其外围设备的连线2. 汇编程序RS EQU P2.5 MOV R2, ARW EQU P2.6 CALL WriteConE EQU P2.7 MOV R1, #00HORG 0000H Loop1: MOV A, R1LJMP Init MOVC A, @A+DPTRORG 0100H MOV R2, A Init: MOV R2, #01H CALL WriteDat CALL WriteCon INC R1MOV R2, #38H CJNE A, #00H, Loop1CALL WriteCon RETMOV R2, #0FH WriteCon: MOV P0, R2CALL WriteCon CLR RSMOV R2, #06H CLR RWCALL WriteCon CLR EMOV R2, #80H CALL DelayCALL WriteCon SETB EKey: JNB P2.0, Line1 RETJNB P2.1, Line2 WriteDat: MOV P0, R2JNB P2.2, Line3 SETB RSJNB P2.3, Line4 CLR RWLJMP Key CLR E Line1: CALL ClrLine1 CALL DelayMOV R3, #80H SETB EMOV DPTR, #String1 RETCALL WriteLin WriteDatS: MOV P0, R2LJMP Key SETB RS Line2: CALL ClrLine2 CLR RWMOV R3, #0C0H CLR EMOV DPTR, #String2 CALL DelaySCALL WriteLin SETB ELJMP Key RETLine3: CALL ClrLine1 ClrLine2: MOV R2, #0C0H MOV R3, #80H CALL WriteConMOV DPTR, #String3 CALL ClrProCALL WriteLin RETLJMP Key ClrLine1: MOV R2, #80H Line4: CALL ClrLine2 CALL WriteCon MOV R3, #0C0H CALL ClrProMOV DPTR, #String4 RETCALL WriteLin ClrPro: MOV R0, #20LJMP Key ClrLoop: MOV R2, #00H WriteLin: MOV A, R3 CALL WriteDatSDJNZ R0, ClrLoopRET DelayS: MOV R1, #0FHDelay: MOV R3, #0FFH DJNZ R1, $Loop: MOV R2, #0FFH RETDJNZ R2, $ String1: DB “this is line1”, 00HDJNZ R3, Loop String2: DB “this is line2”, 00HRET String3: DB “this is line3”, 00H DelayS: MOV R1, #0FH String4: DB “this is line4”, 00H DJNZ R1, $ ENDRET五、实验结果单片机在启动过程中,会将LCD显示模块进行初始化操作,初始化结束以后,LCD的光标会在第一行的最左边闪烁。
java编程基础实验报告
![java编程基础实验报告](https://img.taocdn.com/s3/m/6c301b65a4e9856a561252d380eb6294dd882200.png)
java编程基础实验报告Java编程基础实验报告一、引言Java是一种广泛应用于软件开发领域的高级编程语言,具有跨平台的特性,因此备受开发者的青睐。
本篇实验报告将介绍我在学习Java编程基础过程中所进行的实验,并总结实验结果和心得体会。
二、实验目的本次实验的主要目的是通过编写Java程序,加深对Java编程语言的理解和掌握,提高编程能力和解决问题的能力。
三、实验内容1. 实验环境搭建在开始实验之前,我首先搭建了Java编程环境。
我选择了使用Eclipse作为集成开发环境(IDE),并安装了Java开发工具包(JDK)。
2. 实验一:Hello World程序在第一个实验中,我编写了一个简单的Hello World程序。
该程序的功能是在控制台输出"Hello, World!"。
通过这个实验,我熟悉了Java程序的基本结构和语法规则。
3. 实验二:变量和数据类型在第二个实验中,我学习了Java中的变量和数据类型。
我编写了一个程序,实现了两个整数相加并输出结果的功能。
通过这个实验,我掌握了Java中的基本数据类型和变量的声明和使用方法。
4. 实验三:条件语句和循环语句在第三个实验中,我学习了Java中的条件语句和循环语句。
我编写了一个程序,实现了判断一个数是否为偶数并输出结果的功能。
通过这个实验,我掌握了Java中的if语句和for循环语句的使用方法。
5. 实验四:数组和字符串在第四个实验中,我学习了Java中的数组和字符串。
我编写了一个程序,实现了对一个整型数组进行排序并输出结果的功能。
通过这个实验,我掌握了Java中数组的声明和使用方法,以及字符串的操作方法。
6. 实验五:面向对象编程在第五个实验中,我学习了Java中的面向对象编程。
我编写了一个程序,实现了一个简单的学生信息管理系统。
通过这个实验,我掌握了Java中类的定义和对象的创建与使用方法。
四、实验结果通过以上实验,我成功编写了各种Java程序,并在控制台输出了预期的结果。
python实验报告赵广辉
![python实验报告赵广辉](https://img.taocdn.com/s3/m/9875bf99d05abe23482fb4daa58da0116d171f67.png)
python实验报告赵广辉实验报告:Python编程实验一、实验目的:本次实验旨在通过Python编程,加深对Python语法和基本功能的理解,实现一些简单的应用程序,并掌握基本的调试方法。
二、实验材料与工具:1. Python编程环境:可以使用IDE,如 PyCharm、Visual Studio Code等。
2. Python语言教程和参考资料。
三、实验内容与步骤:本次实验共包括以下四个部分,分别是字符串处理、列表操作、条件控制与循环、函数定义与调用。
(一)字符串处理1. 编写一个程序,输入一个字符串,将其中的所有小写字母转换为大写字母,并输出结果。
2. 编写一个程序,输入一个字符串,统计其中每个字母出现的次数,并输出结果。
3. 编写一个程序,输入一个字符串,将其中的每个字符与其后面的字符连接起来,并输出结果。
(二)列表操作1. 编写一个程序,创建一个包含10个整数的列表,将其中的奇数移到列表的前半部分,偶数移到列表的后半部分,并输出结果。
2. 编写一个程序,输入一个整数n,创建一个包含n个随机整数的列表,将其中的负数删除,并输出结果。
3. 编写一个程序,输入一个整数n,创建一个包含n个随机整数的列表,将其中的最大值和最小值删除,并输出结果。
(三)条件控制与循环1. 编写一个程序,输入一个年份,判断其是否为闰年,并输出结果。
2. 编写一个程序,输入一个正整数n,判断其是否为素数,并输出结果。
3. 编写一个程序,创建一个由10个随机整数构成的列表,输出其中的偶数,并计算其平均值。
(四)函数定义与调用1. 编写一个函数,输入一个整数n,计算n的阶乘,并返回结果。
2. 编写一个函数,输入一个列表,打印列表中的元素,并计算列表中元素的和。
3. 编写一个函数,输入两个正整数m和n,计算它们的最大公约数。
四、实验结果与分析:(一)字符串处理1. 输入字符串:"Hello, World!",输出字符串:"HELLO, WORLD!"2. 输入字符串:"Hello, World!",输出统计结果:{'H': 1, 'e': 1, 'l': 3, 'o': 2, ',': 1, ' ': 1, 'W': 1, 'r': 1, 'd': 1, '!': 1}3. 输入字符串:"Hello, World!",输出字符串:"HHeelllloo,, WWoorrlldd!!"(二)列表操作1. 输入列表:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],输出列表:[1, 3, 5, 7, 9, 2, 4, 6, 8, 10]2. 输入整数n:10,输入列表:[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],输出列表:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]3. 输入整数n:10,输入列表:[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],输出列表:[-2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9](三)条件控制与循环1. 输入年份:2020,输出结果:2020年是闰年。
串的操作实验报告
![串的操作实验报告](https://img.taocdn.com/s3/m/e542ca9c900ef12d2af90242a8956bec0875a572.png)
一、实验目的1. 理解串的概念及其在程序设计中的应用。
2. 掌握串的基本操作,如创建、插入、删除、查找等。
3. 提高对数据结构操作的理解和编程能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:C++3. 开发工具:Visual Studio 2019三、实验内容1. 创建串2. 插入字符3. 删除字符4. 查找字符5. 合并串6. 判断串是否为空7. 获取串的长度8. 反转串四、实验步骤1. 创建串```cpp#include <iostream>#include <string>using namespace std;int main() {string str1 = "Hello";string str2 = "World";return 0;}```2. 插入字符```cppint main() {string str = "Hello";int position = 3;char ch = 'W';str.insert(position, 1, ch);cout << str << endl; // 输出:HWeHllo return 0;}```3. 删除字符```cppint main() {string str = "Hello";int position = 2;int length = 2;str.erase(position, length);cout << str << endl; // 输出:Hereturn 0;}```4. 查找字符```cppint main() {string str = "Hello";char ch = 'e';size_t position = str.find(ch);cout << position << endl; // 输出:1return 0;}```5. 合并串```cppint main() {string str1 = "Hello";string str2 = "World";string str3 = str1 + str2;cout << str3 << endl; // 输出:HelloWorld return 0;}```6. 判断串是否为空```cppint main() {string str1 = "Hello";string str2 = "";if (str1.empty()) {cout << "str1 is empty" << endl;} else {cout << "str1 is not empty" << endl; }if (str2.empty()) {cout << "str2 is empty" << endl;} else {cout << "str2 is not empty" << endl; }return 0;}```7. 获取串的长度```cppint main() {string str = "Hello";int length = str.length();cout << length << endl; // 输出:5return 0;}```8. 反转串```cppint main() {string str = "Hello";reverse(str.begin(), str.end());cout << str << endl; // 输出:olleHreturn 0;}```五、实验结果与分析通过以上实验,我们成功实现了串的基本操作。
字符串实验报告
![字符串实验报告](https://img.taocdn.com/s3/m/f4685c292af90242a895e56e.png)
数据结构字符串实验班级:计算机应用技术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;}实验截图:六、心得体会通过这次实验让我了解了什么是字符串,他是一种特殊的线性表,并了解有关字符串的基本操作和存储结构,并编写相应的基本操作算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验四字符串实验(2学时)
实验目的:
掌握有关字符串的基本操作和存储结构,并编写相应的基本操作算法。
实验内容:(类C算法的程序实现,任选其二)
(1) 求字符串的长度算法(必做);
(2) 求字符串的子串算法(选做);
(3) 字符串的合并算法(选做);
(4) 字符串的置换算法(选做);
(5) 字符串的插入算法(选做)。
实验准备:
1)计算机设备;2)程序调试环境的准备,如TC环境;3)实验内容的算法分析与代码设计与分析准备。
实验步骤:
1.录入程序代码并进行调试和算法分析;
2.编写实验报告。
实验结果:
试验的完整的C程序代码,以及程序实现与结果分析。
(1)字符串的数据结构定义:
(2)给串赋值:
(3)求串的长度:
(4)串的比较:
(5)给串插入值:
(6)输出串:
(7)截取子串:
(8)主函数:(目的:建立字符串,并实现输出,求长度,求字串等基本操作)
(9)程序结果
分析:第一次输出结果为此结果,最后检查为把串的定义写错了,无法再显示最终结
果
这是改过之后输出的结果。