实验六 字符数组
一、实验目的
(1)熟悉C语言关于字符“数组”的定义、引用和初始化方法。 (2)掌握C语言中字符数组的输入、输出方法。 (3)掌握C语言中关于字符“数组”的应用技巧。 (4)掌握字符数组和字符串函数的使用有关算法;
二、实验准备
1.字符数组的理论基础知识
①字符数组的定义:
char str[6]; //通常一维字符数组用来存放一个字符串
char s[5][20]; //二维字符数组s可以用来存放5个字符串,每行存一个 ②字符数组的引用 str[i]、s[i][j] 和数值数组一样:“顺序存储,随机访问”! 通常是用数组名字对其开始的内存空间里存储的字符串整体输入或输出。 ③字符数组的赋初值:定义数组的同时给元素赋值,可以直接赋值
char str1[20]={‘H’,’e’,’l’,’l’,’o’,’\\0’}; //一个字符元素一个字符元素的赋值 char str2[]=”Hello”; //下标省略了6,字符串末尾会自动生成一个’\\0’ char s[3][20]={“Apple”,”Orange”,”Pear”}; //行下标也可以省略 ④字符串处理函数:
以下两个函数包含在一个文件里: gets(str);//可以输入带空格的字符串,结束标志是回车符。scanf函数则不能输入带空格的字符串 puts(str);//输出字符串,遇’\\0’结束,且自动换行 对字符串的处理,一般都要使用字符串的处理函数,在main()前应加预编译命令: #include strcat(str1,str2);//字符串连接函数,将字符串2连接到字符串后面,结果存在字符串1中 strcpy(str1,str2);//字符串赋值函数,将str2(可以是字符串常量或字符数组)的值付给str1 strcmp(str1,str2);//字符串比较函数,将两字符串从左至右逐个字符的ASCII码比较,遇字符不同或有一字符串的’\\0’结束,str1>str2返回值一整数; str1 三、实验内容( 按要求设计以下程序,并调试分析运行结果 ,此部分完成在实验报告上) (1) 设计程序sy6-1.c,输入一个字符串,将其中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入\"Ab,cD\",则输出\"ab,cd\"。 (2) 设计程序sy6-2.c,输入一个字符串,删除其中所有的小写字母'c'。例如,若输入字符串\"ac abc bcdef\",则应输出字符串\" a ab bdef\" (3) 设计程序sy6-3.c,输入一个字符串,统计其中 'a' 到 'z' 26 个英文小写字母各自出现的次数。 例如运行时输入字符串:abcdefgabcdeabc 后,则输出的结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (4) 设计程序sy6-4.c,将一个数字字符串转换为一个整数(不得调用 C 语言提供的将字符串转换为整数的函数)。例如,若输入字符串\"-1234\",则函数把它转换为整数值 -1234。 (5) 设计程序sy6-6.c,将放在字符串数组中的 M 个字符串(每串的长度不超过 N),按顺序合并组成一个新的字符串。 例如,字符串数组中的 M 个字符串为: AAAA BBBBBBB CC 则合并后的字符串的内 页脚内容2 页眉内容 容应是:AAAABBBBBBBCC。 #include { char s[M][N]={\"AAAA\ } //请完善该部分代码 printf(\"\\n结果是 : \\n%s\\n\ 四、实验要求: “实验内容”中的任务要求在实验课上完成,若未完成请在下次上课前利用课外时间完成。 页脚内容2 因篇幅问题不能全部显示,请点此查看更多更全内容