作者:不详 来源:互联网   酷勤网收集 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题

上一篇:题目10:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母   下一篇:题43:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大排序