《2022年字符数组习题可用 .pdf》由会员分享,可在线阅读,更多相关《2022年字符数组习题可用 .pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、例 1、P150 例 7.8 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。#include main()char string81;int i,num=0,word=0;char c;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 17 页 -gets(string);for(i=0;(c=stringi)!=0;i+)if(c=)word=0;else if(word=0)word=1;/*一个新单词开始*/num+;printf(There are%d words in the 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 17 页 -line.
2、n,num);例 2、将数组 a 中获得的字符串复制到数组 b 中。(不得使用 strcpy函数)#include main()char a20,b20;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 17 页 -int i;scanf(%s,a);for(i=0;i=strlen(a)-1;i+)bi=ai;bi=0;printf(%sn,b);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 17 页 -例 3、任意读入一个字符串,统计其中每个小写字母分别出现的次数。【法一:定义 26 个计数器#include main()char a80;int i,n26=0
3、;/*n0 做 a 的计数器*/gets(a);名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 17 页 -for(i=0;ai!=0;i+)if(ai=a&ai=z)nai-a+;for(i=0;i26;i+)if(ni!=0)printf(%c:%dn,i+97,ni);【名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 17 页 -例 4、任意读入 3 个字符串,输出其中最大者。【法一:用一维字符数组】#include#include main()char a20,b20,c20,max20;名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 17 页
4、 -gets(a);gets(b);gets(c);strcpy(max,a);if(strcmp(b,max)0)strcpy(max,b);if(strcmp(c,max)0)strcpy(max,c);puts(max);【法二:用二维字符数组,一个存一个字名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 17 页 -符串。】#include#include main()char a320,max20;int k;for(k=0;k3;k+)gets(ak);strcpy(max,a0);名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 17 页 -for(k=1
5、;k0)strcpy(max,ak);puts(max);【此方法的好处是可以任意多个串进行处理。遗憾是浪费空间。】【思考】任意读入 10 个字符串,升序排列名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 17 页 -后输出。例 5、任意读入一个十进制正整数,将其转换成二至十六任意进制的数字字符串。main()int sjz,n;char qt20;int i,k,r;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 17 页 -scanf(%d,&sjz);if(sjz=0)printf(Read Error!n);exit(0);printf(Input 21
6、6n);scanf(%d,&n);k=0;while(sjz!=0)r=sjz%n;名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 17 页 -if(r=0;i-)printf(%c,qti);名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 17 页 -printf(n);例 6、任意读入一个正整数,判断其是否为回文数。(高位、低位左右对称的数,例如 121、12321)【法一:转化成字符数组】main()名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 17 页 -long x,y;char s10;int i,j,k;do scanf(%ld,&x);while(x=0);y=x;k=0;名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 17 页 -while(x!=0)sk=x%10+0;x=x/10;k+;i=0;j=k-1;while(si=sj&ij)i+;j-;if(ij)printf(%d is not 名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 17 页 -HuiWenShun,y);else printf(%d is HuiWenShun,y);名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 17 页 -