当前位置: 代码迷 >> C语言 >> 100题第11题另解
  详细解决方案

100题第11题另解

热度:168   发布时间:2006-03-16 14:47:00.0
100题第11题另解
11:下列程序的功能是:把s字符串中的所有字母改写成该字母的下一个字符,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char *s)实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。
例如:s字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为No.123Ayz。
注意:部分源程序已给出。
请勿改动主函数main()和输出数据函数readwriteDat()的内容。
-----------------------
void chg(char *s) /*为什么要设为指针变量呢?*/
{
int i,k;
k=strlen(s);
for(i=0;i<k;i++)
{
if(s[i]=='z'||s[i]=='Z') /*s不是数组啊?怎么成数组了呢?*/
s[i]-=25; /*减25后变成a或A*/
else
if(isalpha(s[i])) /*如果不只z或Z,那么利用函数isalpha判断是否仍是字符,如果是,那么其值加一*/
s[i]++;
}
}
----------------解决方案--------------------------------------------------------

不把字符串首地址当参数传进来,怎么进行操作? 除非设置为全局变量


----------------解决方案--------------------------------------------------------
  相关解决方案