c++ string char 区分收集

本文详细解释了C++中string和char的区别,包括如何正确地使用string进行多字符串判断,提供了实例演示,并介绍了string类相较于char的优势。

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

string 是 String class (类)
char 是 变量类型。

尽管英文string的中文意思是 字符串,但在 c++ 中,它是类,不是简单的字符串。

char 数组 可以处理为字符串,也可以处理为一个一个字符。作为字符串进行比较,要用 strcmp, strncmp 函数,不能用 == 号,作为单个字符,可以用它们的ASCII值(1字节整型)比较,可以用 == 号 

--------------

我知道char是字符,string是字符串,既然在c++中string比char好用是不是完全把char替换掉?
另:
#include<iostream>
using namespace std;
void main()
{
char ch[]="uname";
if(ch=="uname")cout<<"this's ok"<<endl;
}
//---------------
上面这个程式用STRING定义判断就没问题,而用CHAR不行,难道CHAR只能进行单个字符判断,CHAR能不能进行多字符串判断?麻烦给出实例!!!谢谢大家.
------------

C++不允许那样做的,根本就不支持直接比较,即使是单个的字符串判断也不行。 
//反例 
#include<iostream> 
using namespace std; 
void main() 
{ 
char ch[]="u"; char ht[]="u"; 
if(ch==ht)cout<<"this's ok"<<endl; 
else cout<<"11"<<endl; 
} 
//必须如下 
#include<iostream> 
#include<string> 
using namespace std; 
void main() 
{ 
char ch[]="uname"; char ht[]="uname"; 

if(strcpy(ch,ht))cout<<"this's ok"<<endl; 
else cout<<"11"<<endl; 
} 
//或者直接用string函数 
#include<iostream> 
#include<string> 
using namespace std; 
void main() 
{ 
string ch="uname"; string ht="uname"; 

if(ch==ht)cout<<"this's ok"<<endl; 
else cout<<"11"<<endl; 
} 
//这里的CH与HT是任意类型的,可以直接赋值和比较,这样比上个例子方便的!!其实你的问题很正常,我以前也是总混淆的!!
--------------------

<string.h>   是旧的C头文件,对应的是基于char*的字符串处理函数; 
<string>     是包装了std的C++头文件,对应的是新的strng类; 
<cstring>    是对应旧的C头文件的std版本。
如果使用后两种
要加上这一句
using namespace std;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值