Arduino裏的字符串筆記 下

Arduino裏的字符串筆記


1 字符串轉數字 String To Int

/*
使用String.toInt()將字符串轉爲數字示例
 */

String inString = "";    // string to hold input

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // send an intro:
  Serial.println("\n\nString toInt():");
  Serial.println();
}

void loop() {
  // Read serial input:
  while (Serial.available() > 0) {
    int inChar = Serial.read();
    if (isDigit(inChar)) {
      // convert the incoming byte to a char
      // and add it to the string:
      inString += (char)inChar;
    }
    // if you get a newline, print the string,
    // then the string's value:
    if (inChar == '\n') {
      Serial.print("Value:");
      Serial.println(inString.toInt());
      Serial.print("String: ");
      Serial.println(inString);
      // clear the string for new input:
      inString = "";
    }
  }
}

2 數字轉字符串 IntTo String

  1. 直接賦值
String myNumber = 1234;
  1. 使用類成員函數轉換,將數字自動追加到字符串結尾
int value = 123;
String myReadout = "The reading was ";
myReadout.concat(value);
  1. 使用類運算符轉換,將數字自動追加到字符串結尾
int value = 123;
String myReadout = "The reading was ";
myReadout += value;

3 常見函數整理

String.c_str()
一個將string轉換爲 const* char的函數。
c_str函數的返回值是const char的,不能直接賦值給char

    String s = "Chelse";  
    const char *str = s.c_str();  
strcpy
原型聲明:char *strcpy(char* dest, const char *src);

strcpy(A, B.c_str());//將B複製給A
sprintf
把整數123 打印成一個字符串保存在s 中。

char *s;
sprintf(s, "%d", 123); //產生"123"

4 char*,const char*和string 三者轉換

1. const char* 和string 的轉換

(1) const char*轉換爲 string,直接賦值即可。

const char* tmp = "tsinghua"
string s = tmp;

(2) string轉換爲const char*,利用c_str()

string s = "Arduino";
const char*tmp = s.c_str();
2. char*和const char* 的轉換

(1) const char*轉化爲char*,利用const_cast<char*>

const char* tmp = "Arduino";
char* p = const_cast<char*>(tmp);

(2) char*轉化爲const char*,直接賦值即可。

char* p = "tsinghua"
const char* tmp = p;
3. char*和string 的轉換

有了1和2的基礎,char*和string轉化就很簡單了。

(1)char*轉化爲string,直接賦值即可。

char* p = "Arduino"
string str = p;

(2)string轉化爲char*,走兩步,先是string->const char*,然後是const char*->char*

string str = "Arduino";
char* p = const_cast<char*>(str.c_str());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章