c/c++中的一些比较实用的类型转换方式总结(仅供参考)

本文详细解析了C++中string、String及CString三种字符串类的区别,包括它们的大小、应用场景及相互之间的转换方法,适用于Win7 64位环境下使用多字节字符集的开发人员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电脑操作系统:win7 64位  使用的是多字节字符集

string 、 String 以及 CString 的区别?

string 是c++标准C++扩充字符串操作的一个类,大小为28个字节;String 是opencv 中的类,大小为8个字节;CString 是 MFC中的类,大小为4个字节。

一些数据类型之间的转换方法:

#include <iostream>
#include <opencv2/opencv.hpp>
#include <afxwin.h>
#include<sstream>

using namespace std;
using namespace cv;

int main()
{
    //定义测试变量
    CString Cstr = "11111";
    String Str = "22222";
    string str = "33333" ;
    char temp[6] = "55555";
    char *Ptemp = "6666";
    //类型转换
    //Cstr = str.c_str();//string -> CString
    //str = Cstr;//CString -> string

    //Str = Cstr;//CString -> String
    //Cstr = Str.c_str();

    //str = Str; //String -> string
    //Str = str;//string -> String

    //strcpy_s(temp, Cstr);//CString -> char[N]
    //Cstr.Format("%s", temp);//char[N] -> CString

    //Ptemp = Cstr.GetBuffer(Cstr.GetLength());//CString -> char*
    //Cstr.ReleaseBuffer();
    //Cstr.Format("%s", Ptemp);//char* -> CString

    /*  数据类型与字符串类型之间的转换 需包含头文件 sstream*/
    //stringstream tempbuf;
    //int n = 222;  //int -> string 
    //tempbuf << n;
    //tempbuf >> str;

    //int n ; //string -> int
    //tempbuf << str;
    //tempbuf >> n;
    //tempbuf.clear();
    //tempbuf << "11111";
    //tempbuf >> n;

    //str = temp;//char[] -> string
    //strcpy_s(temp, str.c_str());//string -> char[]

    //str = Ptemp;//char* ->string
    //Ptemp = (char *)str.c_str();//string ->char*

    //Str = temp;//char[] -> String
    //strcpy_s(temp, Str.c_str());//String -> char[]

    //Str = Ptemp;//char* ->String
    //Ptemp = (char *)str.c_str();//String ->char*


    system("pause");
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值