1樓:
1.你說的是ascii碼吧2.輸入字元轉化為ascii是什麼意思?ascii碼本身就是一系列字元,你說的是ascii碼值麼?3.要將ascii碼進行哪種運算後輸出?
提示一下,單個ascii字元是可以強制轉換為int的。
2樓:我愛李春霞
當然是這樣的,因為你把字元變數a轉換為了整型,也當然就是她所對應的
ascii碼了
在c++中char型別的陣列裡邊裝的是數字,如何轉換為int型別?
3樓:會飛的小兔子
cha和rint陣列轉換,例:
inti[2]=
charc[2]=
兩者轉換**:
inta[2]=;
charc[2];
for(inti=0;i<2;i++)c[i]=a[i];
int是將乙個數值向下取整為最接近的整數的函式,為取整函式。
擴充套件資料char*、string、cstring這三種字串型別各有各的優點,比如cstring比較靈活,是基於mfc常用的型別,安全性也最高,但可移植性最差。string是使用stl時必不可少的型別,所以是做工程時必須熟練掌握的;char*是從學習c語言開始就已經和我們形影不離的了,有許多api都是以char*作為引數輸入的。
char*型別:是字元指標,在一定條件下等同於字元陣列,如果字元陣列的最後元素是"\0",則是乙個c風格的字串。
4樓:匿名使用者
在標頭檔案中新增
#include
#include
void main()
{char *s;
int n;
s="1234";
n=atoi(s);
cout<:1234
標頭檔案中新增#include
用 x=atof(s)可轉化為double型,用(float)x可轉為float型
5樓:匿名使用者
#include
void main()
//用int()也可以換的方便
6樓:匿名使用者
char str="10";
int num=strtol(str,null,10);
其中,把10換成16可以
獲得16進製制數(即num=16),換成其他數字,可以獲得其他進製的數(如換成8的話,n=8)
7樓:匿名使用者
#include
#include
#include
using namespace std;
template
t lexical_cast(u u)
int main()
8樓:匿名使用者
char dd[n];//設陣列的長度是nint ee[n];
for(int i=0;i c++中如何將ascii碼強制轉換為int 9樓:匿名使用者 char c; int a; 如果a=int(c);a的值為字元的ascii碼,如果a=c-『0』;a的值就是字元所代表的阿拉伯數字 c++中將char轉換為int型 10樓:匿名使用者 char c; int a; 如果a=int(c);a的值為字元的ascii碼,如果a=c-『0』;a的值就是字元所代表的阿拉伯數字 11樓:人民幣9葘 你的問題可以有兩個理解: 理解一、你是想把int型的變數強制轉換為char型的變數嗎?很簡單在變數前加強制轉換運算子就可以了。例程: int a=1; char c=(char)a; //把a強制轉換為char型賦給變數c 理解二、你是想把1轉換為字元『1』吧?在ascii編碼表中,字元『0』~『9』是順序編碼的,所以用相應的值加上字元『0』的編碼,就是那個值的ascii碼了。例程: int a=1; char c=a+'0'; //c的值就是'1'的ascii碼值 12樓:匿名使用者 用強行轉換不行嗎?? c++中的int和char之間的轉換問題 13樓: 這要用到ascii碼的知識,粗略講一下 字元'0'的ascii碼為 48,然後是'1' '2' '3' ... '9' 字元' '(空格)的ascii碼為32. 字元'a'的ascii碼為65,然後是'b' 'c' ... 'z' 字元'a'的ascii碼為97,然後是'b' 'c' ... 'z' 所以,把乙個數字字元ch,轉為乙個整數,就是ch-'0'當然ch-48也行 因為c和c++中,字元和整型是一樣的,可以隱式轉換 14樓:匿名使用者 int型和char型的長度不一樣。int佔4個位元組而char只佔乙個位元組(大小視系統而定的),所以char轉int沒問題,反過來就可能出錯了 字母有對應的的ascii碼,所以a = b - '0'就是通過ascii碼轉換為數字的 int型也可以直接賦值給char型,同樣是按照ascii碼來的,但由於int長度比char長,因此超過範圍則轉換出來的值可能是不定的(根據編譯器不同而不同),所以一般最好不要這麼轉換 15樓:匿名使用者 目前絕大多數編譯器,int 型資料佔 4 位元組, char 型佔 1 位元組。進行不同資料的強制轉換其實就是資料占用位元組擴充或者截斷。 比如int a; char b; a=(int)b; b=(char)a; 由 b 轉換成 int 型資料就是將 b 擴充 3 個位元組;而將 a 轉換成 char 型資料就是將 a 的最低位位元組擷取出來。因此,將資料由值域較寬型別強制轉換到值域較窄型別時,有可能出現資料資訊丟失。 你說的轉換錯誤其實不然,因為 char 型資料在機器裡通過 ascii 碼儲存,也就是用乙個整數儲存的。譬如字元 ' 0 ',對應的 ascii 碼的十進位制數 是 48,因此強制轉換成 int 後,是 48,而不是 0 。要想將字元 '0' 轉換成整數 '0',就要使用你所說的 a = b - '0'; 或者 a = b - 48; 。 16樓:牽牛散步 第一,int型和char型的長度不一樣。int佔4個位元組而char只佔乙個位元組。 第二,char型可以直接賦值給int型,值的大小是char字元對應的ascii碼值,例如: b = 'a'; a = b; 則a的值應該是97。 第三,int型也可以直接賦值給char型,同樣是按照ascii碼來的,但由於int長度比char長,因此只有在int的值處在ascii碼範圍內的時候轉換後的值才是有意義的,如果超過範圍則轉換出來的值可能是不定的(根據編譯器不同而不同),在vc6下是0 17樓: 首先你要清楚,在c++中int型佔4個位元組,而char型別 只佔1個位元組,char型別是可以轉化為int型別的,但int型別不一定可以轉換為char型別。 我對你這個問題的理解是,你想將0到9之間的數字轉化為char型別的,或是將'0'-'9'之間的字元轉化為int型的數字。 你如果要用強制轉換的話可以這樣:(0的ascii碼是48) int a; char b; a=(int)(b-48);或b=(char)(a+48); //這樣轉化的前提是a的範圍是0-9,b的範圍是'0'-'9' 在實際運用中,在整型和字元型之間轉化用得較多的應該要算int型與char *型別之間的轉化了。這個時候可以用atoi(字元型轉整型,可以分開理解a to i)和itoa(整型轉字元型,i to a),如: int a=11111 char* b="33333"; a=atoi(b);//將整型轉化為字串 或itoa(a,b,10);//將字串轉化為整型,最後乙個引數是進製,在這裡是10進製 18樓:匿名使用者 a=b-'0' 得到的數字是 0和b 兩個字母的機器**的差別, 不是數學意義上的數字. 另外int是兩個byte, char是乙個. 也無法直接轉換. 想轉換字母和數字的話你可以試試系統程式 ctoi() 和 itoc() 19樓:徐良軍 在c++中,int轉換為char稱為隱式轉換,char轉換為int稱為顯式轉換。隱式轉換可直接轉換,顯示轉換則要強制性轉換,故b=a,可直接賦值,強制性轉換則要指明轉換型別,如:a=(int)b; 20樓:匿名使用者 轉換其實是對應的ascii碼來顯示的。比如char c=『a』; int i= c; 那麼i=65;是a對應的ascii碼。又比如 c = char(65);那麼c就是a; 21樓:踏岸尋柳 直接賦值即可,無須轉換。 為何在c++中要將乙個char型的變數以數的形式輸出需要將其強制轉換成int 型的,而微控制器中不用 22樓:玻璃麥田 任何變數在記憶體中的儲存都是二進位制數。 在輸出的時候, c++中,cout<< 輸出乙個char型變數預設就是字串。要輸出數字需要強制轉換。 在c中,printf,是格式化輸出,對於乙個char型變數,%c輸出字串,%d輸出其ascii碼值,不需要強制轉換。 23樓:匿名使用者 如果用cout輸出需要轉換, 用printf不用的. 因為cout會自己判斷變數的型別, 然後根據型別來決定如何輸出 c++將乙個int型變數強制傳喚成其對應的ascii碼值 24樓:不畏將來 123456 78910 1112 1314 1516 1718 1920 2122 2324 2526 2728 2930 3132 3334 3536 3738 39#include #include void fun1() ;char b[11]; for(int i=0;i<11;i++)//將整形轉換成字元型。 b[i]='\0'; puts(b); }void fun2() for(i=0;i }int main() 不是太明白你的意思所以實現了兩種互相轉換。 c++中char型別變數如何轉換成int型別變數? 25樓: 在ascii碼中數字'0'-'9'的編碼是48 - 57,所以你減乙個'0',或者減乙個48都可以。 26樓:匿名使用者 從 char 到 int 屬於「從短到長」的轉換,而從 int 到 char 則為「從長到短」的轉換。 短到長時,系統會自動提公升,會將1個位元組的char型別資料擴充到4個位元組(32位系統),對於無符號型別來說,只將int的最低位元組複製為char的值,其餘三個位元組都為0。 長到短時,只將int的最低位元組的內容複製到char型別的變數,三個高位位元組被忽略,這在編譯時會給出警告,但通過強制型別轉換則可以避免警告出現,如 char ch = (char)intvar。 27樓:匿名使用者 char str_tmp; int int_tmp; str_tmp='5'; int_tmp=(int)(str_tmp - '0'); cout< 28樓: 用函式斯stoi()就行。 int_tmp=stoi(str_tmp); 29樓:百度使用者 int_tmp=str_tmp-48; 30樓:匿名使用者 int atoi( const char *string ); c/c++ 中,int型資料位址強制轉換成char型再列印出來為什麼是反向的? 31樓:匿名使用者 舉個例子來說吧,假設32位整型int a=0x56781234; 而&a=0x80000000,則記憶體中的位元組儲存順序是: 0x80000000 0x04 0x80000001 0x03 0x80000002 0x02 0x80000003 0x01 0x80000004 0x08 0x80000001 0x07 0x80000002 0x06 0x80000003 0x05 即低位位元組儲存在前,以8個位元組為乙個32位整型單位,這叫little endian式儲存方式。 字串定址是按照位元組單位順序訪問的。 如果上述變數a你要輸出12345678的ascii碼順序,你可以:int a=0x87654321; 一般pc用的cpu採用little endian方式儲存資料,但有的cpu採用big endian方式,那樣你就可以採取int a=0x12345678;了。 c語言對字串的定義是 以0結尾的ascii字串行.所以結尾有 0 就叫字元內串,如果沒容有,就叫字元陣列char str 4 abc 這句就是char str 4 一回事 str以0結尾,所以str是個字串,當然也是字元數粗char str1 3 str1不能叫字串,只能叫字元陣列 那你學過c語言嗎... 看你的 的意思是先把第乙個冒號前面的字串去掉,然後再分割標示符給你個短的版本,如下 include include include int main void p printf s n q 這裡還有最後乙個別忘了。return 0 include include include struct out... 你輸入的是4個字元啊,輸出卻只有3個字元 c語言。輸入三個字元,輸出三個字元對應ascii碼的大小,從大到小排 輸出換成 printf c include void main char a 3 int i,j for i 0 i 3 i daofor j i j 3 j if a i 版。如果你只有...C 中,char是字串,還是字元陣列
C語言將字元變成字串的問題
C語言輸入字元後,按各字元的ASCII碼從小到大的順序輸出這字元