c语言字符转换为ascii中,输入一个字符,如何将这个字符的ASCii码放进一个变量内

&&/&&&&/&&
scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
scanf函数的一般形式
scanf函数是一个标准库函数,它的函数原型在头文件&stdio.h&中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为:
& & scanf(&格式控制字符串&, 地址表列);
其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符&&&后跟变量名组成的。
例如:&a、&b分别表示变量a和变量b的地址。
这个地址就是编译系统在内存中给a、b变量分配的地址。在C语言中,使用了地址这个概念,这是与其它语言不同的。 应该把变量的值和变量的地址这两个不同的概念区别开来。变量的地址是C编译系统分配的,用户不必关心具体的地址是多少。
变量的地址和变量值的关系
在赋值表达式中给变量赋值,如:
& & a=567;
则,a为变量名,567是变量的值,&a是变量a的地址。
但在赋值号左边是变量名,不能写地址,而scanf函数在本质上也是给变量赋值,但要求写变量的地址,如&a。这两者在形式上是不同的。&是一个取地址运算符,&a是一个表达式,其功能是求变量的地址。
#include &stdio.h&
int main(void){
int a,b,c;
printf(&input a,b,c\n&);
scanf(&%d%d%d&,&a,&b,&c);
printf(&a=%d,b=%d,c=%d&,a,b,c);
在本例中,由于scanf函数本身不能显示提示串,故先用printf语句在屏幕上输出提示,请用户输入a、b、c的值。执行scanf语句,等待用户输入。在scanf语句的格式串中由于没有非格式字符在&%d%d%d&之间作输入时的间隔,因此在输入时要用一个以上的空格或回车键作为每两个输入数之间的间隔。如:
格式字符串
格式字符串的一般形式为:
& & %[*][输入数据宽度][长度]类型
其中有方括号[]的项为任选项。各项的意义如下。
表示输入数据的类型,其格式符和意义如下表所示。
输入十进制整数
输入八进制整数
输入十六进制整数
输入无符号十进制整数
输入实型数(用小数形式或指数形式)
输入单个字符
输入字符串
用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。如:
scanf(&%d %*d %d&,&a,&b);
当输入为:1&& 2&& 3时,把1赋予a,2被跳过,3赋予b。
用十进制整数指定输入的宽度(即字符数)。例如:
scanf(&%5d&,&a);
输入只把12345赋予变量a,其余部分被截去。又如:
scanf(&%4d%4d&,&a,&b);
输入将把1234赋予a,而把5678赋予b。
长度格式符为l和h,l表示输入长整型数据(如%ld)和双精度浮点数(如%lf)。h表示输入短整型数据。
使用scanf函数还必须注意以下几点:
scanf函数中没有精度控制,如:scanf(&%5.2f&,&a);是非法的。不能企图用此语句输入小数为2位的实数。
scanf中要求给出变量地址,如给出变量名则会出错。如 scanf(&%d&,a);是非法的,应改为scnaf(&%d&,&a);才是合法的。
在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据(如对&%d&输入&12A&时,A即为非法数据)时即认为该数据结束。
在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。
scanf(&%c%c%c&,&a,&b,&c);
输入 d、e、f 则把'd'赋予a,' ' 赋予b,'e'赋予c。只有当输入为&def&时,才能把'd'赋于a,'e'赋予b,'f'赋予c。
如果在格式控制中加入空格作为间隔,如:
scanf (&%c %c %c&,&a,&b,&c);
则输入时各数据之间可加空格。
#include &stdio.h&
int main(void){
printf(&input character a,b\n&);
scanf(&%c%c&,&a,&b);
printf(&%c%c\n&,a,b);
由于scanf函数&%c%c&中没有空格,输入M& N,结果输出只有M。而输入改为MN时则可输出MN两字符。
#include &stdio.h&
int main(void){
printf(&input character a,b\n&);
scanf(&%c %c&,&a,&b);
printf(&\n%c%c\n&,a,b);
本例表示scanf格式控制串&%c %c&之间有空格时,输入的数据之间可以有空格间隔。
5) 如果格式控制串中有非格式字符则输入时也要输入该非格式字符。
scanf(&%d,%d,%d&,&a,&b,&c);
其中用非格式符& , &作间隔符,故输入时应为:5,6,7。又如:
scanf(&a=%d,b=%d,c=%d&,&a,&b,&c);
则输入应为:a=5,b=6,c=7。
6) 如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。
【例4-10】
#include &stdio.h&
int main(void){
printf(&input a number\n&);
scanf(&%d&,&a);
printf(&%ld&,a);
由于输入数据类型为整型,而输出语句的格式串中说明为长整型,因此输出结果和输入数据不符。如改动程序如下(【例4-11】):
#include &stdio.h&
int main(void){
printf(&input a long integer\n&);
scanf(&%ld&,&a);
printf(&%ld&,a);
运行结果为:
input a long integer
当输入数据改为长整型后,输入输出数据相等。
【例4-12】
#include &stdio.h&
int main(void){
char a,b,c;
printf(&input character a,b,c\n&);
scanf(&%c %c %c&,&a,&b,&c);
printf(&%d,%d,%d\n%c,%c,%c\n&,a,b,c,a-32,b-32,c-32);
输入三个小写字母,输出其ASCII码和对应的大写字母。
【例4-13】
#include &stdio.h&
int main(void){
printf(&\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%d\n&,sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));
输出各种数据类型的字节长度。
推荐文章 TOP10【菜鸟求助】输入一个字符,按格式输出这个字符及它的ASCII码_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:497,524贴子:
【菜鸟求助】输入一个字符,按格式输出这个字符及它的ASCII码收藏
#include&stdio.h&int main(){scanf("%c",&ch);printf("The ASCII of '%c' is %d\n",ch,ch);return 0;}
票牛教你如何买到热门、便宜、真实的演出门票!
你的ch已经定义为char型,你最后输出它又是int型,这样不行的吧,你输出的ASCII值再定义个int型变量吧
没问题呀……
刚刚试了一下,过了的。#include&stdio.h&int main(){int c=0;
scanf("%c",&ch);
c=ch+'0'-'0';
printf("The ASCII of '%c' is %d\n",ch,c);
return 0;}
说不定那个网站丧心病狂的不用ASCII表示字符呢
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或2015年11月 扩充话题大版内专家分月排行榜第一2015年7月 扩充话题大版内专家分月排行榜第一2015年1月 扩充话题大版内专家分月排行榜第一2014年9月 扩充话题大版内专家分月排行榜第一(补)2013年9月 扩充话题大版内专家分月排行榜第一2013年8月 扩充话题大版内专家分月排行榜第一2013年7月 扩充话题大版内专家分月排行榜第一
2016年3月 扩充话题大版内专家分月排行榜第二2015年12月 扩充话题大版内专家分月排行榜第二2015年6月 扩充话题大版内专家分月排行榜第二2015年2月 扩充话题大版内专家分月排行榜第二2014年10月 扩充话题大版内专家分月排行榜第二2014年8月 扩充话题大版内专家分月排行榜第二
2015年8月 C/C++大版内专家分月排行榜第三2015年5月 C/C++大版内专家分月排行榜第三2015年3月 C/C++大版内专家分月排行榜第三2015年1月 C/C++大版内专家分月排行榜第三
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2015年11月 扩充话题大版内专家分月排行榜第一2015年7月 扩充话题大版内专家分月排行榜第一2015年1月 扩充话题大版内专家分月排行榜第一2014年9月 扩充话题大版内专家分月排行榜第一(补)2013年9月 扩充话题大版内专家分月排行榜第一2013年8月 扩充话题大版内专家分月排行榜第一2013年7月 扩充话题大版内专家分月排行榜第一
2016年3月 扩充话题大版内专家分月排行榜第二2015年12月 扩充话题大版内专家分月排行榜第二2015年6月 扩充话题大版内专家分月排行榜第二2015年2月 扩充话题大版内专家分月排行榜第二2014年10月 扩充话题大版内专家分月排行榜第二2014年8月 扩充话题大版内专家分月排行榜第二
2015年11月 扩充话题大版内专家分月排行榜第一2015年7月 扩充话题大版内专家分月排行榜第一2015年1月 扩充话题大版内专家分月排行榜第一2014年9月 扩充话题大版内专家分月排行榜第一(补)2013年9月 扩充话题大版内专家分月排行榜第一2013年8月 扩充话题大版内专家分月排行榜第一2013年7月 扩充话题大版内专家分月排行榜第一
2016年3月 扩充话题大版内专家分月排行榜第二2015年12月 扩充话题大版内专家分月排行榜第二2015年6月 扩充话题大版内专家分月排行榜第二2015年2月 扩充话题大版内专家分月排行榜第二2014年10月 扩充话题大版内专家分月排行榜第二2014年8月 扩充话题大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 c语言字符转换为ascii 的文章

 

随机推荐