题目48字符型题
函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5.DAT中
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; if(xx[i][j]=='o') {righto=j; for(s=righto+1;s tem[k++]=xx[i][s]; for(s=0;s if(xx[i][s]!='o') tem[k++]=xx[i][s]; strcpy(xx[i],tem); } else continue; } } ********书上答案************* void StrOR(void) { int i,j,k,index,strl; char ch; for(i=0;i { strl=strlen(xx[i]); index=strl; for(j=0;j if(xx[i][j]=='o') { for(k=j;k xx[i][k]=xx[i][k+1]; 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; } } } ★题目49(字符处理——倒序输出) 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT6.DAT中。 例如:原文:You He Me I am a student. 结果:Me He You student a am I void StrOL(void) { int i,j,k,s,m,strl; char str[80]; for(i=0;i { strl=strlen(xx[i]); memset(str,0,80); 中 华 考 试 网 s=k=0; for(j=strl-1;j>=0;j--) { if(isalpha(xx[i][j])) k++; else { for(m=1;m<=k;m++) str[s++]=xx[i][j+m]; k=0; } if(!isalpha(xx[i][j])) str[s++]=' '; } for(m=1;m<=k;m++) str[s++]=xx[i][j+m]; str[s]='\0'; strcpy(xx[i],str); } } ★题目50(字符排序题) 函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。 例如:位置 0 1 2 3 4 5 6 7 源字符串 a b c d e f g h 则处理后字符串 a h c f e d g bwww.ExamW.CoM void jsSort() {int i,j,k,strl; char ch; for(i=0;i<20;i++) { strl=strlen(xx[i]); for(j=1;j for(k=j+2;k if(xx[i][j]>xx[i][k]) { ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;} } } ★☆题目51(替换字符题) 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT1.DAT中。 例:原文:Adb.Bcdza abck.LLhj 结果:Aec.Bdeab bcdl.LLik void ConvertCharA(void)中华考试网(www.Examw。com) { int i,j; for(i=0;i { for(j=0;j if(xx[i][j]=='z') xx[i][j]='a'; else if(xx[i][j]>='a'&&xx[i][j]<='y') xx[i][j]+=1; } } ☆题目52(亲朋字符替换题) 函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数CHA(),其函数功能是:以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后把已处理的字符串逆转后按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT9.DAT中.原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格. void ChA(void) { int i,j; char ch; for(i=0;i { ch=xx[i][0]; for(j=0;j xx[i][j]+=xx[i][j+1]; xx[i][strlen(xx[i])-1]+=ch; strrev(xx[i]); //进行逆转 } }
memset(tem,0,80);//初始化数组tem;