本文目錄一覽:
- 1、c語言char型字元串轉換成int型字元串
- 2、C語言中,char類型是不是完全可以替代int類型啊?
- 3、C語言為什麼char型數字求余得到的是int型數字
- 4、C++中,int型和char型相乘如何運算?
c語言char型字元串轉換成int型字元串
1、把char型轉換成int類型。
for(int i=0;ilt;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;ilt;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語言中,char類型是不是完全可以替代int類型啊?
不可以完全替代,因為char和int有個取值範圍的問題,int的取值範圍比char大,用char存超過其取值範圍的int型數據,會溢出。
C語言為什麼char型數字求余得到的是int型數字
其實所有運算都是針對內存進行運算,char型是以ASCII碼對應保存在內存中的,比如字元a的ASCII碼是97,那它和int 97沒差別,但有些字元是不可見的比如換行符、回車符、製表符等等。這個具體可以參考ASCII碼錶。
比如說,你用波浪號 ~ (ASCII碼值126)對68取餘數,你會得到冒號 (ASCII碼值58)。它和數字58 沒區別,看你輸出時候把它作為什麼輸出的。作為%d輸出,就是58。作為%c輸出,就是冒號。
一般情況下,取餘數函數默認輸出是整數型,所以你會看到是數字,你可以把它強製作為字元型輸出的話就能理解了。
#include stdio.h
int main(){
char c1 = ‘~’;//126
int i1 = c1%68;//對68取餘數,應該的結果是58
printf(“char [%c] , int [%d].\n”,i1,i1);
return 0;
}
//輸出結果如下
char [:] , int [58].
C++中,int型和char型相乘如何運算?
在C/C++中,int型是整型,而char
型是字元型。但實際上,char中存儲的實際值是字元的ASCII碼值。
所以,在C/C++中,char本質上是一個佔用單位元組的整型類型。
當int和char進行計算,包括加減乘除,均會按照int來運算,即先將char按照值轉為int型,再進行計算。結果仍為int型。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245712.html