实验8 字符数组与字符串
一、实验目的1、 1 getchar 和putchar ; 2 带“%s”格式符的scanf 和printf ; 3 gets 和puts ;结果如下图所示:
并思考下列问题:
1 用getchar /putchar 输入、输出字符时,如何判断循环结束?
2 用带”%s”格式符的scanf 输入时,可以输入空格码? getchar 、gets 的情况怎样?
3 用什么方式输入、输出字符串最简便?
2、 基础题 输入一个字符串,请编程统计其中的字母、数字、空格 含制表符 、标点符号的个数并输出。如下图所示:
提示:在教材的p385-386中有字符和字符串函数,可以直接引用。如isalpha 判断字母函数、isdigit 判断数字函数、isspace 判断空格函数、ispunct 判断标点函数等
3、 基础题 编写程序实现如下功能:先定义两个元素个数为31的字符数组str1、str2,然后输入两个字符串保存到str1、str2中;现调用字符串处理函数分别进行以下处理:
1 分别计算两个字符串的长度并输出;
2 输出两个字符串中的较大值;
3 再定义一个字符数组str,将str1、str2两个字符串连接后保存到str中并输出,如下图所示:
4、 基础题 下面程序的功能是:将一个字符串str的内容以反序方式存储,请填写所缺程序代码:
#include
#include ____ 1 _____
int main int i, j, k;
char str[] "1座机电话号码0ABCDEF";
printf "反序前:%s\n",str ;
for i 0, j ____ 2 ______;___ 3 _____; i++, j-- k str[i];
str[i] ______ 4 ________;
str[j] k; printf "反序后:%s\n\n",__ 5 ___ ;
return 0; 提示:反序存储一个已存在字符串中,就是将要字符数组中首尾对应的元素两两交换。可用两个变量i和j标示交换位置, i是前端元素的下标, j是后端元素的下标, 交换的是str[i]和 str[j]。初始时,i和j分别指向字符串的两端,每次交换后,i和j分别向中间移动。重复以上过程,直至字符串所有字符反序为止。
5、 提高题 参考大课程序,输入6个英文单词,要求按从小到大排序,并输出。如下图所示: