C语言---谭浩强书上的一道密码问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 16:45:10
#include<stdio.h>
#include<math.h>
main()
{
char c[15],i;
printf("请输入原电码:");
scanf("%s",c);
for(i=0;c[i]!='\0';i++)
{
if((c[i]>='A' && c[i]<'W') || (c[i]>='a' && c[i]<'w'))
c[i]=c[i]+4;
if((c[i]>='W' && c[i]<='Z') || (c[i]>='w' && c[i]<='z'))
c[i]=c[i]-22;
}
printf("\n密电为:%s",c);
}
如何修改这个程序才能将例如“I am a boy!!!”这样含有空格的字符串译为密电?
非常感谢!
为什么换成gets就可以了?谁能解释一下

把scanf(..)这句换为gets(s);
gets()可接受空格..

原程序不可以吗?我看可以

scanf("%s",c);

改为
gets(c)
或者
scanf("%[^\n]",c);

源程序没有错,但最好在主函数之前加上void,因为你的主函数没有返回值!

把scanf(..)这句换为gets(s);