题目10:请编制函数ConvertCharA(), 其函数的功能是: 以行为单位把字符串中的所有小写字母改写成该字母的下一个字母, 如果是字母z, 则改写成字母a,大写字母和其它字符保持不变。把已处理的字符串仍按行重新存入字符串数组xx中。。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT3.DAT中。
    : 原文: Adb.Bcdza
              abck.LLhj
        结果: Aec.Bdeab
              bcdl.LLik
    原始数据文件存放的格式是: 每行的宽度均小于80个字符, 含标点符号和空格。
    注意: 部分源程序存放在PROG1.C中。
    请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
-----------------
类型:字符串(单词)的倒置和删除。
答案:
void ConvertCharA(void) /*标准答案*/
{int I,j,str;
  for(I=0;I<maxline;I++)
  {str =strlen(xx[I]);
for(j=0;j<str;j++)
if(xx[I][j]=='z')xx[I][j]='a';
else if(xx[I][j]>='a'&&xx[I][j]<='y') xx[I][j]+=1;
  }
}
题目11:下列程序的功能是:把s字符串中的所有字母改写成该字母的下一个字符,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char *s)实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。
    例如:s字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为No.123Ayz
    注意:部分源程序已给出。
    请勿改动主函数main()和输出数据函数readwriteDat()的内容。
-----------------------
void chg(char*s) /*标准答案*/
{while(*s)
  if(*s=='z'||*s=='Z')
  {*s-=25;s++;}
  else if(*s>='a'&&*s<='y')
  {*s+=1;s++;}
  else if(*s>='A'&&*s<='Y')
{*s+=1;s++;}
else s++;
}
或者:
void chg(char *s)
{ int i,k;
k=strlen(s);
for(i=0;i<k;i++)
{ if(s[i]=='z'||s[i]=='Z')
  s[i]-=25;
  else
  if(isalpha(s[i]))
  s[i]++;  }
}
题目19:编写一个函数findstr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",函数返回值为6
    函数readwriteDat()的功能是实现从文件in.dat中读取两个字符穿4,并调用函数findstr(),最后把结果输出到文件out.dat中。
    注意:部分源程序已给出。
    请勿改动主函数main()和函数ReadWrite()的内容。
-----------------------
int findStr(char *str,char *substr)
  { int  n;
    char  *p , *r;
    n=0;
    while ( *str )
  {  p=str;
      r=substr;
      while(*r)
      if(*r==*p) {  r++;  p++;  }
      else  break;
      if(*r=='\0')
      n++;
      str++;  }字符串处理函数 如果是a展示b
  return  n;
  }
43 函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
  例如:位置   0 1 2 3 4 5 6 7 
     源字符串 h  g  f  e  d  c  b  a
    则处理后字符串 h  a  f  c  d  e  b  g
  部分源程序已给出。
  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
-------------------------
类型:字符串左右排序和比较。
void jsSort() /*标准答案*/
{int I,j,k,strl;
char ch;
for(I=0;I<20;I++)
{strl=strlen(xx[I]);
  for(j=1;j<strl-2;j=j+2)
  for(k=j+2;k<strl;k=k+2)
  if (xx[I][j]>xx[I][k])
  {ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}
  }
}
44:函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx(第行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
  条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
  例如:位置   0 1 2 3 4 5 6 7 8
     源字符串 a  b  c  d  h  g  f  e
                    1  2  3  4  9  8  7  6  5
    则处理后字符串 h g f e d c b a
                    8 7 6 5 9 4 3 2 1
  部分源程序已给出。
  请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
-------------------------
类型:字符串左右排序和比较。
void jsSort() /*标准答案*/
{int I,j,k,strl,half;
char ch;
for(I=0;I<20;I++)
{strl=strlen(xx[I]);
  half=strl/2;
  for(j=0;j<half-1;j++)
  for(k=j+1;k<half;k++)
  if (xx[I][j]<xx[I][k])
  {ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}
    for(j=half-1,k=strl-1;j>=0;j--,k--)
    {ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}
  }
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。