2021-07-01

字符数组和字符串变量string的区别

string不是c++语言的基本类型(char,int,float,double等),它是c++标准库中声明的一个字符串类,想要完整使用其功能需要头文件#include< string>(自己去空格)

#include<iostream>
#include<string.h>
#include<string>
using namespace std;
int main()
{1)定义
	char *c1="I love C";//把字符串常量赋值给字符串指针 
	//char c2[20];
	//c2="I love C++";错误,字符数组不能先定义再赋值 
	char c2[11]="I love C++";//定义十个长度不够,字符数组c2末尾有\0,即c2一共有11个字节 
	cout<<*(c1+7)<<"\n";
	cout<<c2[7]<<endl;2)赋值
	string s1="I love C!";//不需指定长度,其长度随字符串长度改变 
	string s2;// 字符串变量可以先定义再赋值 
	s2="I love C++!";//字符串变量s2末尾没有\0,即s2一共有10个字节 
	string s3=s2; //等价于strcpy(s3,s2); 
	string s4;3)输入输出
	cin>>s4;//string类(字符串变量)可以直接输入,但是字符数组不行 
	cout<<c1<<endl;
	cout<<s4<<endl;//输出操作一样,输出字符串变量名和字符数组名即可4)运算
	cout<<strcat(c2,c1)<<endl; //字符数组连接要求前面的长度不小于后面,然后返回值是前一个字符数组的地址 
	cout<<s1+s2<<endl;//字符串变量直接用加号相加即可,没啥限制 
	
	//字符串比较直接用关系运算符
	//1.s1完全等于s2,则s1==s2;
	//2.s1与s2不完全相同,则比较第一对不同字符的ASCII码,较小的字符所在的串为较小的串
	//3.s1的长度n1小于s2的长度n2,且两字符串前n1个字符都相同,则s1<s2;5)字符串数组
	string name[5]={"aass","bb","ccrr","ddffff","ee"};
	//字符串数组,每一个元素都是字符串变量,
	//且每个字符串变量长度可以不一样,因为每个元素存的不是字符串本身,而是字符串首地址 
	//char c2[11]="I love C++";字符数组,每一个元素都是字符; 
	cout<<sizeof(name); //32位系统下应输出20(4*5); 
	
	 
	
	 
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值