亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中string庫與自定義類型的轉換

發布時間:2024-10-09 17:09:23 來源:億速云 閱讀:80 作者:小樊 欄目:編程語言

在C++中,std::string庫提供了許多用于處理字符串的操作。如果你需要將自定義類型與std::string進行轉換,你可以使用以下方法:

  1. 使用std::to_string函數std::to_string函數可以將數值類型(如整數、浮點數等)轉換為std::string。例如:
#include <iostream>
#include <string>

int main() {
    int num = 42;
    std::string str = std::to_string(num);
    std::cout << "The string representation of " << num << " is: " << str << std::endl;
    return 0;
}

對于自定義類型,你可以重載operator<<以支持直接輸出到std::ostream,然后使用std::ostringstream進行轉換:

#include <iostream>
#include <sstream>
#include <string>

class MyType {
public:
    int value;

    MyType(int v) : value(v) {}

    friend std::ostream& operator<<(std::ostream& os, const MyType& obj) {
        os << obj.value;
        return os;
    }
};

int main() {
    MyType obj(42);
    std::string str = obj;  // 使用重載的operator<<
    std::cout << "The string representation of " << obj << " is: " << str << std::endl;
    return 0;
}
  1. 使用std::stoistd::stod函數std::stoistd::stod函數可以將std::string轉換為整數和浮點數。例如:
#include <iostream>
#include <string>
#include <stdexcept>

int main() {
    std::string str = "42";
    try {
        int num = std::stoi(str);
        std::cout << "The integer representation of " << str << " is: " << num << std::endl;
    } catch (const std::invalid_argument& e) {
        std::cerr << "Invalid argument: " << e.what() << std::endl;
    } catch (const std::out_of_range& e) {
        std::cerr << "Out of range: " << e.what() << std::endl;
    }

    str = "3.14";
    try {
        double d = std::stod(str);
        std::cout << "The double representation of " << str << " is: "<< d << std::endl;
    } catch (const std::invalid_argument& e) {
        std::cerr << "Invalid argument: " << e.what() << std::endl;
    } catch (const std::out_of_range& e) {
        std::cerr << "Out of range: " << e.what() << std::endl;
    }

    return 0;
}

對于自定義類型,你可以重載operator>>以支持從std::istream讀取,然后使用std::istringstream進行轉換:

#include <iostream>
#include <sstream>
#include <string>

class MyType {
public:
    int value;

    MyType(int v) : value(v) {}

    friend std::istream& operator>>(std::istream& is, MyType& obj) {
        is >> obj.value;
        return is;
    }
};

int main() {
    std::string str = "42";
    std::istringstream iss(str);
    MyType obj;
    iss >> obj;  // 使用重載的operator>>
    std::cout << "The MyType value is: " << obj.value << std::endl;

    str = "3.14";
    iss.clear();
    iss.str(str);
    obj.value = 0;
    iss >> obj.value;  // 使用重載的operator>>
    std::cout << "The MyType value is: " << obj.value << std::endl;

    return 0;
}

這些方法可以幫助你在std::string和自定義類型之間進行轉換。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

汕头市| 利津县| 吉安市| 高青县| 高安市| 绥阳县| 英德市| 宜宾县| 舞钢市| 连江县| 稷山县| 湾仔区| 赫章县| 青冈县| 四川省| 京山县| 大关县| 南汇区| 长岛县| 苍梧县| 彰化市| 磐安县| 嘉鱼县| 桂东县| 延边| 宣化县| 靖江市| 五常市| 龙游县| 靖宇县| 盘山县| 盐山县| 麻栗坡县| 墨玉县| 武汉市| 资溪县| 陈巴尔虎旗| 怀安县| 安龙县| 高安市| 陇南市|