C语言达人帮忙看下!

来源:百度知道 编辑:UC知道 时间:2024/06/08 06:10:18
输入一行字符,将其中的字母用该字母之后的第4个字母进行替换,若替换字母超过z则循环到a,大写字母一样,输出改后的字符串。
但是我的输入是打回车不管用是怎么回事?
源程序:
#include<stdio.h>
main()
{
int i;
char a[50],b[50];
clrscr();
printf("Input the string:");
gets(a);
printf("\n");
for(i=0;a[i]!='\n';i++)
{
if(a[i]>=65&&a[i]<87)
b[i]=a[i]+4;
else if(a[i]>=87&&a[i]<=90)
b[i]=a[i]-22;
else if(a[i]>=97&&a[i]<119)
b[i]=a[i]+4;
else if(a[i]>=119&&a[i]<=122)
b[i]=a[i]-22;
}
printf("The result is :");
puts(b);
printf("\n");
}

#include<stdio.h>
#include <stdlib.h>
main()
{
int i;
char a[50],b[50];
clrscr();
printf("Input the string:");
gets(a);
printf("\n");
for(i=0;a[i]!='\0';i++)//这改成了\0
{
if(a[i]>=65&&a[i]<87)
b[i]=a[i]+4;
else if(a[i]>=87&&a[i]<=90)
b[i]=a[i]-22;
else if(a[i]>=97&&a[i]<119)
b[i]=a[i]+4;
else if(a[i]>=119&&a[i]<=122)
b[i]=a[i]-22;
else
b[i]=a[i];//这加了句不是字母的话的情况处理
}
b[i]=0;//这加了句.
printf("The result is :");
puts(b);
printf("\n");
}
上面的可以运行. 添加个字符串结束标志\0. 有问题hi我.