c语言的问题:char a,b; a=97,b=98;中a和b不是字符变量吗,为什么可以赋给一个整形常量的?初学者。

作者&投稿:卞云 (若有异议请与网页底部的电邮联系)
c语言的问题:char a,b; a=97,b=98;中a和b不是字符变量吗,为什么可以赋给一个整形常量的?初学者。~

char
a,b就是把a,b定义为变量。
a=97是把97赋值给变量a,非常量a。
a的ascii码是97
你也可以这样赋值a='a'.
这样的结果和a=97是一样的。

1、把char型转换成int类型。
for(int i=0;i<str.length();i++)
{
char temp_char=str.charAt(i);
//把字符转换成数字方法一
int temp_int=temp_char-'0';
//把字符转换成数字方法二
int temp_int=Integer.parseInt(String.valueOf(temp_char));
}
第一种办法:通过charAt(i),把字符串的每位变成char型,然后用当前字符减去字符0(temp_char-'0'),得到当前字符的int值。
第二种办法:把字符再转成字符串,然后再强制转换成int型。
2、把字符串拆分成一位一位的
第一种方法:循环后charAt(i);
注意:charAt(i)得到的是字符串对应的每位字符,可是不能直接转成int,转成int依然是ASCII值。
第二种方法:char[]temp=str.toCharArray();
注意:char[]里的内容不是字符串的每位字符,而是每位字符的ASCII值。
具体如下:
package cjl;
import java.util.Scanner;
/**
一维码有一种编码是ean13,是一串13位数字。其中第13位是校验码,作用是校验前面12个数字是否正确。
校验方法如下:
1、前12位数字从左起,将所有的奇数位相加得出一个数a,将所有的偶数位相加得出一个数b
2、将数b乘以3再与a相加得到数c
3、用10减去数c的个位数,如果结果不为10则校验码为结果本身,如果为10则校验码为0
请在控制台任意输入一个12位数字,然后输出校验码
author ff
/
public class CheckCode{
public void checkCode(String str)
{
int checkCode=0;
int a=0;//奇数位的和
int b=0;//偶数位的和
for(int i=0;i<str.length();i++)
{
char temp_char=str.charAt(i);
//把字符转换成数字方法一
int temp_int=temp_char-'0';
//把字符转换成数字方法二
//int temp_int=Integer.parseInt(String.valueOf(temp_char));
//System.out.println("temp_char="+temp_char);
//System.out.println("temp__int="+temp_int);
if((i+1)%2==0)//偶数位
{
b+=(int)temp_int;
}
else//奇数位
{
a=a+(int)temp_int;
}
}
int c=a+b*3;
int c_gw=c%10;
int d=10-c_gw;
//System.out.println("a="+a+"b="+b+"c="+c+"c_gw="+c_gw+"d="+d);
if(d==10)
{
checkCode=0;
}
else
{
checkCode=d;
}
System.out.println("checkCode="+checkCode);
}
public void Input()
{
while(true){
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个12位的数字。。。。。。");
String str=scanner.nextLine();
if((str.length()==12)&&(str.matches("[0-9]+")))
{
checkCode(str);
break;
}
}
}
/**
param args
/
public static void main(String[]args){
CheckCode codeVo=new CheckCode();
codeVo.Input();
}
}
运行结果:
请输入一个12位的数字。。。。。。
111111111111
checkCode=6

扩展资料:char是计算机编程语言(c、c++、java、VFP等)中可容纳单个字符的一种基本数据类型。
char是一个数据类型,作用是定义字符型变量(单个或是字符串)。
比方int是整形数据,int a=3;这里int是类型,a是整型变量,3是赋值;
char s='A';char是字符类型,s是字符型变量,A是赋值给变量s;
char s[]="c program";char是字符类型,s[]是字符型数组,"c program"是赋给数组的值。

很简单的一个问题,我也是正在学C语言的。a,b是字符型,
如果要解释你这个问题,那就要知道在C语言里是怎么储存字符型数据了。在C语言里储存字符型数据,其实是储存对应字符数据的ASc码,而ASc码就是整型的数字。所以那就正常咯,把一个字符的ASc码赋给字符变量。

a,b是变量
a = 97是将97赋给a

呵呵,其实在语言里面为了说明一块内存的长度方便才有什么字符,整数,浮点等等,而且还是可以形象的比喻。

事实上计算机只认识 1 0 1 0的二进制数,
所以你可以在看到char的时候你就认为是一个8位二进制的整数,short是16位的二进制整数,long int都是32位二进制整数。

希望对你有所帮组。

char a,b就是把a,b定义为变量。
a=97是把97赋值给变量a,非常量a。
a的ascii码是97
你也可以这样赋值a='a'.
这样的结果和a=97是一样的。


C语言题——汉诺塔问题
void Move(char chSour, char chDest){ \/*打印移动步骤*\/ printf("\\nMove the top plate of %c to %c",chSour, chDest);} Hanoi(int n, char chA, char chB, char chC){ \/*检查当前的盘子数量是否为1*\/ if(n==1) \/*盘子数量为1,打印结果后,不再继续进行递归*\/ Move(chA,...

cha是几声调的字
cha的声调一到四声的字有插、查、蹅、岔,其相关内容如下:1、插:读作chā,这个字的意思是指刺入、挤放进去,引申义是把细长或薄的东西放进、挤入、刺进或穿入,将物体或人放置到空位或适当的位置,例如“插秧”、“插入”。2、查:读作chá,这个字的意思是调查或检查,如“查阅资料”、“...

c语言问题,gets为何不可用
把getchar改为getch 因为你输入getchar的时候还要敲回车~~字符串cha2就是回车 或者在gets前面加一句scanf("%*c")或者getchar() 用来消化回车

chaooo是什么意思?
Chaooo 常常出现在年轻人的社交圈中,在展示自己的成功或者是获得他人的赞美时,多用 Chaooo 来表达自己的兴奋和喜悦。Chaooo 还经常用于赞美他人,如夸奖朋友、偶像或明星等,以表达对他们的喜爱和支持。由于网络语言经常存在变异和创新,所以 Chaooo 出现了多种变体。例如 Chaoge,Chaozuai,Chaoliu 等...

C类语言中的char主要用法是什么?
char是C语言关键字之一,用来表示基础类型字符型。每个char变量占一个字节,表示范围为-128到127。char用来存储字符时,实际存储值为对应的ASCII码值。char类型可以用scanf\/printf输入输出,对应的格式字符串为%c。 也可以用getchar\/putchar输入输出。以ASCII码值0结尾的char数组,在C语言中用来表示字符串...

茶人茶话:今天,就说一个“茶”字
“茶”字出于《尔雅?释木》:“槚,苦荼(即原来的“茶”字)也。”。茶的古称还有荼、诧、茗等。由于中国各地方言对“茶”的发音不尽相同,中国向世界各国传播茶文化时的叫法也不同,大抵有两种。比较早从中国传入茶的国家语言依照汉语比较普遍的发音叫“cha”,或类似的发音,如阿拉伯、土耳其、...

cha拼音汉字
cha拼音汉字:chā锸,chá茶,chǎ镲,chà岔。1、chā锸,本义指长针。类似现在的行针。铁锹,掘土的工具。 做衣服时插在四周的针,把衣服张平。2、chá茶,本义是苦菜,又指茶树。茶是采集后经多道工序加工的冲饮提神树叶。由采集后经多道工序加工的冲饮提神树叶引申为蒸发或研磨制成的调匀饮料...

C语言问题,图
ch=(ch>='A'&&ch<='Z')?(ch+32):ch 这句话可以这样看,ch=( (ch>='A'&&ch<='Z')?(ch+32):ch )首先这是一个赋值语句,然后问号前面是判断句,根据ASCII码,判断ch是否在A-Z之间,也就是说ch是否为大写字母,如果是,则取值(ch+32),即转化成小写,否则取值ch A的ASCII码是65...

加德满都旅行说什么语言方便
都可以,汉语英语藏族都行。尼泊尔的华人很多的。

C语言关于for语句的用法问题 void main() { static unsigned cha
include<stdio.h>void main(){ static unsigned char d=0,a,k,s; while(1) { for(int i=0;i<8;i++) { a=4; k=3; s=6; d++; } printf("d=%d\\n",d); getchar(); \/\/运行一下就知道了,第一次循环之后d=8 }} ...

宁晋县19616745084: c语言中char a,b; 是什么意思 -
爱新觉罗顷炎消: char a[]={'a','b','c'} 这是一个字符数组,占3个字节. char a[]="abc" 则不同,它是一个字符串,最后还有一个'\0'结束符,占4个字节

宁晋县19616745084: c语言中的char *a,*b; strcpy(a,b);与a=b;有什么区别? -
爱新觉罗顷炎消: char *a,*b; //说明定义的是两个char型指针变量 strcpy(a,b); //此处用法是错误的,strcpy是字符串拷贝,a,b是指针a,b的地址,不是字符型的 char a,b; //说明定义的是两个char型变量 strcpy(a,b); //此处将b的值赋值给a

宁晋县19616745084: 在C语言中,,和;有什么区别.char a b c 这么输入对么,还是char a,b,c为什么 -
爱新觉罗顷炎消: “,”表示并列,“;”表示一个语句结束,char a b c是不对的要用“,”对字母进行分开,编译器才知道是定义三个变量

宁晋县19616745084: c语言char a[10],b是否正确 -
爱新觉罗顷炎消: 你的写法是正确的,在句末加一个分号就成为一行完整的语句:char a[10],b; 这是一个变量声明语句.它声明了一个长度为10的字符数组变量a,和一个字符变量b.字符数组变量a,根据储存的数据不同,也可叫“字符串变量a”.有什么问题请留言.

宁晋县19616745084: C语言中,关于字符串长度与字符数组长度的问题. -
爱新觉罗顷炎消: C语言约定字符串以 '\0' 结尾,上述数组末尾没有 '\0' ,所以字符串的长度无法确定.

宁晋县19616745084: c语言数组问题 定义了char a[],b[]; b={a,b,c,d}; a=b;这样是不是错的??? -
爱新觉罗顷炎消: 是的,字符型数组不能直接整个数组直接赋值的

宁晋县19616745084: c语言中char a,b; char 是类型说明符 这个是说明a ,b是字符型数据 -
爱新觉罗顷炎消: 告诉编译器这两个变量里存的是字符型数据

宁晋县19616745084: C语言的问题 -
爱新觉罗顷炎消: 第一个是将整数以对应的字符输出,根据ASCII.输出正常,并没有涉及到内存够不够的问题.但第...

宁晋县19616745084: char b[][10] c语言表示什么意思 -
爱新觉罗顷炎消: 定义了一个二维数组,每个数组元素是一个字符,第一维度是10,第二维度未知. 另一种理解: 定义了一个一维数组,每个数组元素是一个字符串,维度未知,每个字符串中最多容纳10个字符(含结束符).

宁晋县19616745084: 在C语言中,设有char a='C' ,b='A' ;执行语句printf("%d, -
爱新觉罗顷炎消: 设有char a='C' ,b='A' ;执行语句printf("%d,%d",b,a-b);后,输出结果是 A、65,2 因为在C中,char 等同于一个8位有符号整数,只是作“字符”解读.所以,char a='C' ,b='A' ;等同于char a=67 ,b=65; 在以%d格式输出时的值就是 65,2

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网