中国石油大学(华东)C语言在线测评答案第10章字符串(2013级亲测正确)概要.docx

中国石油大学(华东)C语言在线测评答案第10章字符串(2013级亲测正确)概要.docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中国石油大学(华东)C语言在线测评答案第10章字符串(2013级亲测正确)概要

10.1 字符转换描述提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。输入一个以回车符为结束标志的字符串(少于80个字符)。输出把字符串中的所有数字字符(‘0’...‘9’)转换为一个整数并输出。#includestdio.h#includestring.hint main(){ char s[80];inti,k,n=0;gets(s);k=strlen(s); for(i=0;ik;i++) if(s[i]=0s[i]=9) n=n*10+(s[i]-0);printf(%d\n,n);return 0;}10.2 合并字符串输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到 大排列。输入:两个已经排好顺序(升序)的字符串输出:一个合并在一起的有序(升序)的字符串要求:设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。如果采用先进行串连接,然后再进行排序的算法,则效率太低了。#includestdio.h#includestring.hint main(){ char a[100],b[100],t;intk,i,j; gets(a); gets(b);strcat(a,b); k=strlen(a); /*冒泡法排序*/ for(i=1;ik;i++) /*不能用字符串数组最后一项\0和前面项比较,故i从1开始*/ for(j=0;jk-i;j++) if(a[j]a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } puts(a); return 0;}10.3 删除重复字符背景:输入一个长度不超过 100 的字符串,删除串中的重复字符。输入:输入要检查的字符串,长度不超过100个字符。例如:abacaeedabcdcd。输出:删除重复字符后的字符串。例如:abced。#includestdio.h#includestring.hint main(){char a[100],b[100];intk,i,j;gets(a);k=strlen(a);for(i=0;ik;i++)for(j=i+1;jk;j++)if(a[j]==a[i]) a[j]=\0;for(i=0;ik;i++)if(a[i]!=\0)printf(%c,a[i]);printf(\n);return 0;}10.4 删除字符串中指定字符输入两个字符串 s1 和 s2 ,在 s1 中删除任何 s2 中有的字符。输入: 两个字符串 s1 和 s2输出: 删除后的字符串 s1#includestdio.h#includestring.hint main(){char s1[20],s2[20];int k1,k2,i,j;gets(s1); gets(s2);k1=strlen(s1); k2=strlen(s2);for(j=0;jk2;j++)for(i=0;ik1;i++)if(s1[i]==s2[j]) s1[i]=\0;j=0;for(i=0;ik1;i++)if(s1[i]!=\0){ s1[j]=s1[i]; j++; }s1[j]=\0;puts(s1);return 0;}10.5 单词有多少用空格或换行分开的字符串称为单词。输入多行字符串,直到遇到了单词 stop 时才停止。最后输出单词的数量。用于分割单词的空格或换行可能多于1个。输入: 多个字符串输出: 单词的数量#includestdio.h#includestring.hint main(){char s[20];inti,n=0;for(i=0;;i++){ scanf(%s,s); /*scanf遇空格或换行则存入下一个s[20]*/ n++; /*不能gets(s),它对换行空格没反应,都存入同一s[],无法strcmp*/ if(strcmp(s,stop)==0) break;}printf(%d\n,n-1);return 0;}10.6 在指定位置插入字符串输入两个字符串 s1 、 s2 和 s1 中任意字符 k ,在 s1 中的指定字符 k 第一次出现的位置处插入字符串 s2 并输出。输入: 两个字符串 s1 、 s2 和 s1 中任意字符 k输出: 插入后的字符串 s1#includestdio.h#includestring.hint main(){

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档