2022年字符数组与字符串终版 .pdf
实验报告 _实验 8 字符数组与字符串 (学号_姓名) 一、实验目的:1、掌握字符串的输入、输出的多种方法;2、熟悉字符串处理的主要环节用循环处理字符数组中的元素,并考虑串结束标志的作用。 能根据实际需要,有效处理字符串;3、掌握字符串常用处理函数的用法;4、熟悉字符串的比较、交换、排序等算法。二、实验内容1、(基础题 )编程实现:先定义三个元素个数同为21 的字符数组 str1、str2、str3,之后分别用 getchar()/putchar()、带“%s” 格式符的 scanf()/printf()、gets()/puts()实现输入、输出功能,如下图所示:程序代码 : #include#includeint main() char str121,str221,str321; printf( 请?输o?入?一?个?长? 度 不?超?过y20的? 字? 符?串?( 用?getchar()实o| 现?): n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - int i=0; while (str1i=getchar()!=n) i+; printf( 请?输o?入?一?个?长? 度 不?超?过y20的? 字? 符?串?( 用?gets()实o| 现?): n); gets(str2); printf( 请?输o?入?一?个?长? 度 不?超?过y20的? 字? 符?串?( 用?带?%sscanf()实o| 现?): n); scanf( %s,str3); printf(n 输o?出?结 果?:n ); printf( 用?putchar()实o| 现?: ); int j=0; while (ji-1) putchar(str1j+); printf(n 用?带?puts() 实o| 现?): ); puts(str2); printf( 用?带?%sprintf()实o| 现?: %snn,str3); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - return 0; 2、(基础题 )输入一个字符串,请编程统计其中的字母、数字、空格(含制表符 )、标点符号的个数并输出。如下图所示:程序代码 : #include#includeint main() char str201; printf( 请?输o?入?一?个?长? 度 不?超?过y200的? 字? 符?串?: n ); gets(str); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - int n1,n2,n3,n4; n1=n2=n3=n4=0; for (int i=0;stri;i+) if (isalpha(stri) n1+; elseif (isdigit(stri) n2+; elseif (isspace(stri) n3+; elseif (ispunct(stri) n4+; printf( 该?字? 符?串?的? 字? 母?个?数oy:o%d,? 数oy字? 个?数oy:o%d, 空?格?个?数oy:o%d,? 标o点? 个?数oy:o%dnn ,n1,n2,n3,n4); return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 3、 (基础题 )编写程序实现如下功能: 先定义两个长度为31 的字符数组 str1、 str2,然后输入两个字符串保存到str1、str2中;现调用字符串处理函数分别进行以下处理:(1)分别计算两个字符串的长度并输出;(2)输出两个字符串中的较大值;(3)再定义一个字符数组str,将 str1、str2两个字符串连接存至str 中并输出。如下图所示:程序代码 : #include#includeint main() char str131,str231,str61; printf( 请?输o?入?str1(长? 度不?超?过y30):); gets(str1); printf( 请?输o?入?str2(长? 度不?超?过y30):); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - gets(str2); printf(nstr1的? 长? 度 :o%d,str2的? 长? 度 :o%d n ,strlen(str1),strlen(str2); printf( 两? 个?字? 符?串?的? 较?大?值| 为a:o%s n ,strcmp(str1,str2)=0? str1:str2); strcpy(str,str1); strcat(str,str2); printf( 连? 接?后?的? 字? 符?串?:o%snn,str); return 0; 4、(基础题 )下面程序的功能是:将一个字符串str 的内容以反序方式存储, 请填名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 写所缺程序代码:(1):string.h(2):strlen(str)-1(3):i=j(4):strj(5):str名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -