Robofun 機器人論壇

標題: 如何把char []轉成int格式? [打印本頁]

作者: pizg    時間: 2013-4-19 19:41
標題: 如何把char []轉成int格式?
請問如何把
char a[2]={'3', '4'};

轉成

34
作者: babyfish0226    時間: 2013-4-19 20:50
  1.   char a[2]={'3', '4'};

  2.   String newStr;
  3.   for (int i=0;i<sizeof(a);i++){
  4.     newStr+=a[i];
  5.   }
  6.   Serial.print(newStr);
複製代碼

作者: pizg    時間: 2013-4-20 00:18
本帖最後由 pizg 於 2013-4-20 00:22 編輯

首先感謝babyfish0226老師的回覆.
但您的回覆並沒把它轉成整數, 甚至是把它複雜化了!

有一個函數可以把char []轉成int >>> atoi(), 程式碼如下:
  1. void setup() {  
  2.   Serial.begin(9600);
  3.   char a[2]={'3', '4'};
  4.   int i = atoi(a);
  5.   Serial.print(i);
  6. }

  7. void loop() {}
複製代碼



ps. 如果要把String轉成int, 也必須先把它轉成char [], 而後再使用atoi()函數即可.
作者: babyfish0226    時間: 2013-4-20 11:20
atoi() 是將 String 轉為 int,內部的原理也相同,若需要的是整數,最後將String轉為Int即可。

知道atoi()當然ok,若不曉得,用for迴圈去組合字串也可以。
作者: pizg    時間: 2013-4-21 17:40
標題: 如何寫一個將String轉成char的函式?
本帖最後由 pizg 於 2013-4-21 19:35 編輯

babyfish0226老師寫的式子可以把char轉成String, 如下:

  1. char a[2]={'3', '4'};
  2. String newStr;
  3.   for (int i=0;i<sizeof(a);i++){
  4.   newStr+=a;
  5.   }
  6.   Serial.print(newStr);
複製代碼


寫成函式後, 如下:
  1. String char2string(char* c) {
  2.   String newStr;
  3.   for (int i=0;i<sizeof(c);i++){
  4.     newStr += c[i];
  5.   }
  6.   return newStr;
  7. }
複製代碼



下列式子可以把String轉成char:


  1. String s = "12";
  2. char c[s.length() + 1];
  3. s.toCharArray(c, sizeof(c));
複製代碼

請問如何把它寫成函式?
作者: pizg    時間: 2013-4-30 00:23
atoi() 是將 String 轉為 int,內部的原理也相同,若需要的是整數,最後將String轉為Int即可。

知道atoi ...
babyfish0226 發表於 2013-4-20 11:20


atoi() 無法將 String 轉為 int 吧?class String 並沒有 atoi() 這個涵式.
這樣會出錯:
  1. String s = "25";
  2.   int i = atoi(s);
複製代碼




atoi() 可以將 char[] 轉為 int,
如下:
  1. char s[] = "25";
  2. int i = atoi(s);
複製代碼





歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2