《数据结构》实验四 字符串和多维数组之统计文本单词个数

本实验旨在巩固学生对字符串和多维数组的理解,通过实践解决实际问题,如统计文本单词数量、生成5阶幻方及实现字符加密解密算法。实验分为必做题和选做题,涵盖输入输出、算法设计和程序调试等内容。

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

《数据结构》实验四:    字符串和多维数组 实验

一..实验目的

     巩固字符串和多维数组相关知识,学会运用灵活应用。

1.回顾字符串和多维数组的逻辑结构和存储操作特点,字符和数组的物理存储结构和常见操作。

2.学习运用字符串和和数组的知识来解决实际问题。

3.进一步巩固程序调试方法。

4.进一步巩固模板程序设计。

二.实验时间

   准备时间为第9周到第10前半周,具体集中实验时间为10周周四。2个学时。

三..实验内容

1.从键盘输入一些文本,统计文本单词的个数。

2.写程序输出一个5阶幻方:每一行每一列每一个对角线和均相等。

3.  自己设计一个字符加密算法,并设计程序验证:输入文本,解后加密并输出。在些基础上设计一个你算法的解密程序。

    前两题是必做题,第3题是选做题。

四.参考资料

    实验教材P197到206

五.实验报告

1.在博客中先写上实习目的和内容,画出主要操作运算算法图,然后分别上传程序代码。插入调试关键结果截图。

2.写一个博文,比较总结字符串和数组知识。建议从知识点角度和应用角度两个方面各陈述。



实验一:从键盘输入一些文本,统计文本单词的个数。

源代码:

#include<iostream>

using namespace std;

static char words[30];

class Words{
public:
    void get_words();
    int count_words();
private:
    int count;
    int i;
    int state;
};

void Words::get_words(){
    cin.get(words,30);

}
int Words::count_words(){
    int count=0;
    for(i=0;i<30;i++){
        if(words[i]==' '){
            state=1;
        }
        if(state==1){
            state=0;
            count++;
        }

    }
    cout<<"单词个数为:"<<count<<endl;

}

int main(){
    Words w;
    cout<<"请输入几个单词:"<<endl;
    w.get_words();
    cout<<"输入的单词为:"<<endl;
    cout<<words<<endl;
    cout<<w.count_words()<<endl;

return 0;

}

运行结果截图:



### Java 中字符数组字符串数组的区别 在 Java 编程语言中,字符数组 (`char[]`) 字符串数组 (`String[]`) 是两种不同的数据结构,用于存储不同类型的字符序列。 #### 字符数组 `char[]` 字符数组由单个字符组成。每个元素都是基本的数据类型 `char`,表示 Unicode 字符集中的一个字符。这种数组适合处理原始字符数据或构建自定义字符串逻辑[^1]。 ```java // 创建并初始化一个字符数组 char[] charArray = {'H', 'e', 'l', 'l', 'o'}; ``` 当需要逐个访问字符或者执行低级别的文本操作时,字符数组非常有用。由于其底层实现简单高效,在某些性能敏感的应用场景下可能更受欢迎。 #### 字符串数组 `String[]` 相比之下,字符串数组是由多个不可变的对象 `String` 组成的一维或多维集合。每一个 `String` 对象代表一段固定不变的文字片段。对于涉及大量预定义文本块的操作来说十分方便[^3]。 ```java // 定义一个包含三个单词字符串数组 String[] stringArray = {"Hello", "World", "!"}; ``` 除了简单的线性列表外,还可以创建多维度的字符串矩阵来组织更加复杂的信息结构: ```java // 多维字符串数组示例 String[][] matrixStrings = { {"First Row Element One", "Second"}, {"Third", "Fourth"} }; ``` #### 转换方式 有时会遇到将字符数组转换为字符串的需求,这可以通过多种途径完成。最常用的方法之一就是利用 `new String(char[])` 构造函数直接实例化一个新的 `String` 实例;另一种则是借助 Apache Commons Lang 库里的工具类 `StringUtils.join()` 方法快速拼接带有分隔符的结果字符串[^2]。 ```java // 使用构造器从字符数组生成字符串 String fromCharArray = new String(charArray); // 或者采用 join 函数连接带特定间隔符的字符数组成员 import org.apache.commons.lang3.StringUtils; String joinedStr = StringUtils.join(charArray, ','); ``` 同样地,如果要反向过程——即把字符串拆分成单独的字符,则可通过调用 `toCharArray()` 来轻松达成目标: ```java char[] backToChars = someString.toCharArray(); ``` 通过上述介绍可以看出,虽然两者都涉及到字符的概念,但在实际应用场合各有侧重,开发者应根据具体需求选择合适的形式来进行编码工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值