C语言 编写一个译码程序,把一个英语句子译成数字代码。

编写一个译码程序,把一个英语句子译成数字代码。译码规则是以数字1 代替字母A,
数字2 代替字母B,……,26 代替字母Z,如遇空格则打印一个星号‘*’,英文句子以‘.‘结
束。
切记是用C语言,麻烦了,有用加悬赏
这是我已经会的,只是麻烦教我一下怎么有空格加“*”
#include <stdio.h>

int main ()
{
char c;

while ((c = getchar()) != '\n')
{
c-=64;
if (c!=-32)
printf ("%d",c);
}

printf (".");

return 0;
}

第1个回答  2014-12-12
#include <stdio.h>

int main ()
{
char c;

while ((c = getchar()) != '\n')
{
if(c==' ')
{
printf("*");
continue;
}
c-=64;
if (c!=-32)
printf ("%d ",c);
}

printf (".");

return 0;
}
试试看符不符合你的要求追问

其实“ * ”是有了,但空格仍在
麻烦你再改一下,谢谢

追答

我在printf ("%d",c);加了空格,为了区分每一个字母的数字。没有空格,你看数字看不出是那个单词。比如12,到底是A,B两个字母还是一个字母。如果你不需要我这样的效果,你把%d后面的空格去掉就可以了
#include

int main ()
{
char c;

while ((c = getchar()) != '\n')
{
if(c==' ')
{
printf("*");
continue;
}
c-=64;
if (c!=-32)
printf ("%d",c);
}

printf (".");

return 0;
}
你再你试试
另外我给你一个建议,你现在的程序只能处理大写字母,最好是完善它,让它大小写都可以处理

追问

嗯,已经解决了
衷心感谢您的帮助 XD

本回答被提问者采纳
第2个回答  2014-12-12
#include <stdio.h>
int main ()
{
char c;
while ((c = getchar()) != '\n')
{
c-=64;
if (c!=-32)
printf ("%d",c);
if(c== ' ') //处理空格时,输出 *
    printf("*");
}
printf (".");
return 0;
}

追问

  我只是想问“ * ”号呢……
  要不麻烦你再改一下,谢谢

追答//您好,之前加的code 就是判断空格,并输出 *的啊。
#include <stdio.h>
int main ()
{
    char c;
    while ((c = getchar()) != '.')//刚又看了遍题意,这里应该改为'.'
    {
        c-=64;
        if (c!=-32)   
            printf ("%d",c);
        if(c== ' ') //处理空格时,输出 * (这里就是输出'*'的地方啊)
            printf("*");
    }
    printf (".");
    return 0;
}

追问

其实我再试了下还是会有这样的问题

不过还是谢谢您的热心帮助 XD

追答

你的输入有问题啊,输入按照题意应该是以 '.‘结束才对啊