c语言中的一个字符串排序题
更新时间:2023-04-13 16:23:01 阅读量: 实用文档 文档下载
标签: 日志原文:a703c0c90c22590102029d08/people/!amlhbnFpYW5nZGV5aW1pQGNoaW5hcmVuLmNvbQ==/93893217 题目3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数STROR(),其函数功能是:以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中.
例如:原文:You can create an index on any field.
you have the correct record.
结果: n any field.You can create an index
rd.yu have the crrect rec
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.
-------------------
类型:字符串(单词)的倒置和删除。
答案:
void StrOR(void) /*标准答案*/
{int I,j,k,index,strl;
char ch;
for(I=0;I
index=strl;
for(j=0;j
{for(k=j;k
xx[I][strl-1]= ' ';
index=j;}
for(j=strl-1;j>=index;j--)
{ch=xx[I][strl-1];
for(k=strl-1;k>0;k--)
xx[I][k]=xx[I][k-1];
xx[I][0]=ch;}
}
}
或者:
void StrOR(void)
{ int i;
char a[80],*p;
for(i=0;i
while(p)
{ memset(a,0,80);
memcpy(a,xx[i],p-xx[i]);
strcpy(xx[i],p+1);
strcat(xx[i],a);
p=strchr(xx[i],'o'); } }
}
或者:
void StrOR(void) /*我的非指针解法*/
{int i,righto,j,k;
char tem[80];
for(i=0;i
for(j=strlen(xx[i])-1;j>=0;j--)
{if(xx[i][j]=='o') {righto=j;break;} }
for(j=righto+1;j
strcpy(xx[i],tem);
}}
或者:
注:题目要求的字符串中所有小写字母o左边的字符串内容移到该串的右边存放,即
将串中“最后”一个字母o左右两侧的内容互换。题中第一个while()特环的作用是让p1
指向最后一个字母'o'。第一个ctrcat()函数的作用是将p1以后的字符都放到新串t中
,第二个strcat()函数的作用是将p1以前的字符连接到新串t的后面(注意:在些之前要
让p1所指的单元成为p1前面字符串的结束位置*p1='\0')。这时完成左右互换。最后
一个while()循环的作用是删除新串中的所有小写字母'o',采用的删除方法是不是'
o'的字母一律留下,否则不留(即相当于删除。)
void StrOR(void)
{int i;
char *p1,*p2,t[80];
for(i=0;i
while(*p2)
{if(*p2=='o') p1=p2;
p2++;}
strcat(t,p1+1);
*p1='\0';strcat(t,xx[i]);
p1=xx[i];p2=t;
while(*p2)
{if(*p2!='o') *p1++=*p2;
p2++;
}
*p1='\0';
}}
或者:
注:该题的主要算法是先
让两字符指针都指向串尾,然后使一指针(p1)往前移动,当
出现不是字母时则表示在p1+1与p2之间是一个单词,并将该单词存入一变量(t1),最后
将t1连接到新串中(t);接着再往前找第二个单词,依次类推直到字符串头。由此可知
新串就是原串中各单词的倒排。
void Str0L(void)
{
int i,k;
char *p1,*p2;
char t[80],t1[80];
for(i=0;i
t[0]=t1[0]='\0';
k=1;
while(k)
{
while(isalpha(*p1)==0&&p1!=xx[i]) {p1--;p2=p1;}
while(isalpha(*p1)&&p1>=xx[i]) p1--;
memcpy(t1,p1+1,p2-p1);
t1[p2-p1]=0;
strcat(t,t1);
strcat(t," ");
if(p1
strcpy(xx[i],t);
正在阅读:
c语言中的一个字符串排序题04-13
中华民族精神尔雅课程答案标准答案(文字型全套,保满分)01-22
发酵蔬菜微生物群落变化及与亚硝酸盐的关系09-30
安全心理学在煤矿生产中的应用分析07-22
小学学校食堂菜谱综述03-08
债券基础知识课后习题01-18
CPU进程与线程的关系和区别02-10
作文复习之文体敲定05-29
落选班长的滋味作文1000字07-02
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 言中
- 字符串
- 排序
- 一个
- 融资融券对中国股市的影响
- (完整版)质谱法习题集和答案解析
- 测量不规则物体的体积教案(水富县第一小学)
- 优质肉羊养殖及屠宰加工项目
- (整理)教师招聘考试案例分析题及答案
- 人教版小学数学一年级上册第5课时 5、4、3、2加几知识点总结教案
- 福建饮水机项目投资计划书
- 河北衡水中学2022届全国高三第一次联合考试答案
- 管理学复习大纲资料
- 小学五年级奥数第一讲走进美妙的数学世界
- 胰腺MR规范化扫描方案
- 企业物流的成本控制
- 物业管理服务承诺(优选.)
- 运维人员岗位培训系列丛书-通信线路专业
- 公共管理学读书笔记doc
- 2022年执业药师考试中药学专业知识一真题及答案
- 马克思基本原理选择题(含答案)考试复习重点
- 四川省南充市2015年中考数学试卷(解析版)
- TCC诺恩:现金不再为王!解读数字货币的崛起之路 TradeCoinClub
- 人教版七年级数学下册第五章 相交线与平行线练习题