首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
第 1 页:题目1 |
第 2 页:题目2 |
第 3 页:题目3 |
第 4 页:题目4 |
第 5 页:题目5 |
**题目3
函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。
例如:原文:n any field.Yu can create an index
you have the correct record.
结果:n any field. Yu can create an index
rd. yu have the crrect rec
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序存放在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include
#include
#include
char xx[50][80] ;
int maxline = 0 ; /* 文章的总行数 */
int ReadDat(void) ;
void WriteDat(void) ;
void StrOR(void)
{int i,righto,j,s,k;
char tem[80];
for(i=0;i for(j=strlen(xx[i])-1;j>=0;j--) { k=0; memset(tem,0,80); /*初始化字符串数组tem*/ if(xx[i][j]=='o‘) /*如果当前字符为'o',进入以下语句*/ {righto=j; /*则将此字符中位置j的值赋给righto*/ for(s=righto+1;s tem[k++]=xx[i][s]; /*从righto的下一跳开始将其后所有的字符都存入到tem中*/ for(s=0;s if(xx[i][s]!='o‘) tem[k++]=xx[i][s]; /*将不是字符'o’的字符全存入到tem中*/ strcpy(xx[i],tem); /*将当前已处理的字符重新存入当前行xx*/ } else continue; } } void main() { clrscr() ; if(ReadDat()) { printf(“数据文件IN.DAT不能打开!\n\007”) ; return ; } StrOR() ; WriteDat() ; } int ReadDat(void) { FILE *fp ; int i = 0 ; char *p ; if((fp = fopen(“IN.DAT”, “r”)) == NULL) return 1 ; while(fgets(xx[i], 80, fp) != NULL) { p = strchr(xx[i], '\n‘) ; if(p) *p = 0 ; i++ ; } maxline = i ; fclose(fp) ; return 0 ; } void WriteDat(void) { FILE *fp ; int i ; clrscr() ; fp = fopen(“OUT5.DAT”, “w”) ; for(i = 0 ; i < maxline ; i++) { printf(“%s\n”, xx[i]) ; fprintf(fp, “%s\n”, xx[i]) ; } fclose(fp) ; } 解法二: void StrOR(void) { int i; char a[80],*p; for(i=0;i { p=strchr(xx[i],'o’); 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,j; char yy[80],*p; for(i=0; i for(j=0; j if(xx[i][j]=='o’) { p=&xx[i][j+1]; strcpy(yy,p); /*将指针p所指向的字符串拷贝到字符串yy中去*/ strncat(yy,xx[i],j); /*将字符串xx[i]中前j个字符连接到yy中*/ strcpy(xx[i],yy); /*将字符串yy重新拷贝到字符串xx[i]中去*/ j=0; /* 开始下一次的扫描。*/ } } 相关库函数解释: char *strncat(char *dest, const char *src, size_t maxlen) 功能:将字符串src中前maxlen个字符连接到dest中 相关头文件:string.h char *strcpy(char *dest, const char *src) 功能:将字符串src拷贝到字符串dest中去 相关头文件:string.h
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |