作者:不详 来源:互联网   酷勤网收集 2008-04-23

摘要
  把s字符串中的所有字母改写成该字母的下一个字符,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char *s)实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。
    题目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]++;  }
}

分类: 题库中心 南开100题



关于酷勤 | 联系方式 | 免责声明 | 友情链接