91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

太仆寺旗| 上林县| 广德县| 黔西县| 镇安县| 类乌齐县| 宜君县| 新泰市| 宁德市| 图木舒克市| 花垣县| 开鲁县| 喀喇| 佳木斯市| 元谋县| 清河县| 宁乡县| 彩票| 齐齐哈尔市| 孟连| 霍州市| 大田县| 五指山市| 迁西县| 龙岩市| 延津县| 英山县| 辉县市| 安福县| 额济纳旗| 军事| 清水县| 华容县| 阜新市| 武安市| 屏山县| 山东省| 合水县| 上高县| 宜州市| 绥中县|