C语言关于[数组]问题!!

有个题是:输入一句英文,用“.”结束。输入的英文在输出的时候按1—a、2—b、……z—26、空格=*来进行输出。也就是将这句英文译成数字。我是个C的初学者。不懂什么高深的... 有个题是:输入一句英文,用“.”结束。输入的英文在输出的时候按 1—a 、2—b、……z—26 、空格=* 来进行输出。也就是将这句英文译成数字。我是个C的初学者。不懂什么高深的C函数。希望多多指教! 展开
 我来答
yuripa1018
2007-06-21 · TA获得超过332个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:151万
展开全部
具体程序你自己写吧。我给出转换的思想:
所谓的字母都是用ASSIC字符集来表示的。每个字符就代表了一个数字。比如a在字符集中的数字就是97。具体assic表请参考:
http://blog.csdn.net/lhong1001/archive/2007/05/21/1619918.aspx
也就是说我们可以先强制类型转换把一个字符转换成一个数字:
char c;
c = 'a'; /*这里可以换成你要的输入*/
int i = (int)c;
i = i - 96;/*96是对小写字母而言的*/
printf(i);
这样就能得到你想要的东西了。
我的C语言忘得差不多了,都在用C++所以就不写出全部程序了,这对你来说也是一种练习吧。
TeaNW
2007-06-21 · TA获得超过363个赞
知道小有建树答主
回答量:87
采纳率:0%
帮助的人:0
展开全部
#include <stdio.h>
#include <string.h>

void f1(char * s)
{
int i;
for(i=0;s[i]!='.'&& s[i]!='\0';i++)
{
if(s[i]>='a' && s[i]<='z')
{
s[i]-=96;
}
else if(s[i]>='A' && s[i]<='Z')
{
s[i]-=64;
}
else if(s[i]==' ')
{
printf("*");
continue;
}
else
{
printf("Error!");
return;
}
printf("%d",s[i]);
}
printf(".\n");
}

void main()
{
char a[41];
int n;
printf("Input a string (length<=40) :\n");
gets(a);
n=strlen(a);
if(a[n-1]!='.')
{
printf("The End of String must be a '.'\n");
return;
}
f1(a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式