c++ 究竟用什么表示字符串
纠结死了,C语言的时候用charwchar_t,C++中有String,Windows有LPSTR,LPWSTR,LPCSTR...,COM有BSTR,MFC有CStri...
纠结死了,C语言的时候用char wchar_t,C++中有String,Windows有LPSTR,LPWSTR,LPCSTR...,COM有BSTR,MFC有CString,怎么这么多表示字符串的方法啊?求指教。
展开
展开全部
知道的不少嘛~
标准C使用的是char*,标准C++使用的是string,当然也可以使用char
微软扩充了标准C/C++的类型,自定义了许多类型,使得使用更容易,CString肯定比char*好用多了。没有什么标准的用法,就看你的个人习惯了。
标准C/C++的字符串在所有的编译器上都可以通过编译,但如果你使用了LPSTR等类型,则只能在支持这种类型的编译器上通过编译(比如VS系列)
至于TEXT/_T宏的使用,是为了使得UNICODE字符更方便的使用。UNICODE和ASCII的编程区别就不多说了,有很多。LPWSTR是宽字符集的字符串定义,LPSTR就是ASCII字符集的字符串定义。一般加上T的,如果你的编译选项是UNICODE,则编译过后是LPWSTR;如果编译选项是ASCII,编译过后就是LPSTR,这一点通过#if…#else宏可以看到。
他们都是为了使用方便而定义的,我的习惯:在纯C++中使用string,WIN32中使用string,在MFC中使用CString(这个最好用)
标准C使用的是char*,标准C++使用的是string,当然也可以使用char
微软扩充了标准C/C++的类型,自定义了许多类型,使得使用更容易,CString肯定比char*好用多了。没有什么标准的用法,就看你的个人习惯了。
标准C/C++的字符串在所有的编译器上都可以通过编译,但如果你使用了LPSTR等类型,则只能在支持这种类型的编译器上通过编译(比如VS系列)
至于TEXT/_T宏的使用,是为了使得UNICODE字符更方便的使用。UNICODE和ASCII的编程区别就不多说了,有很多。LPWSTR是宽字符集的字符串定义,LPSTR就是ASCII字符集的字符串定义。一般加上T的,如果你的编译选项是UNICODE,则编译过后是LPWSTR;如果编译选项是ASCII,编译过后就是LPSTR,这一点通过#if…#else宏可以看到。
他们都是为了使用方便而定义的,我的习惯:在纯C++中使用string,WIN32中使用string,在MFC中使用CString(这个最好用)
展开全部
C++标准库提供std::string表示字符串,应当是所有编译器都会实现的规范。
微软开发的VC当然有自己的字符串,以适应各种类库结构。
因此,单从语言的角度,还是用标准库的std::string来表示。
微软开发的VC当然有自己的字符串,以适应各种类库结构。
因此,单从语言的角度,还是用标准库的std::string来表示。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++中用string表示,其他的由于类别不一样表示的形式稍有不同。给出如下的使用(C++)
class Lyhstudent
{
int no;
string name;
string sex;
string year;
string zhanye;
string beizhu;
public:
Lyhstudent(int,string,string,string,string,string);
~Lyhstudent()
{
cout<<"对象已删除"<<endl;
}
};
class Lyhstudent
{
int no;
string name;
string sex;
string year;
string zhanye;
string beizhu;
public:
Lyhstudent(int,string,string,string,string,string);
~Lyhstudent()
{
cout<<"对象已删除"<<endl;
}
};
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
都是各自的定义或者封装的类型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-08-22
展开全部
都是啊 所以C++是一门坑爹的语言
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询