字符数组与字符串

一、字符数组

1.字符数组初始化
类型 数组名[长度]={元素1,元素2...};
类型 数组名[长度]=“abcde”;

char a[5]={'a','b','c','d','e'};
char b[5]="abcde"; //错误:末尾还需要存放\0
for(int i=0;i<5;i++) cout<<a[i];

2.字符数组的输入输出
使用cin,cout,printf()
注意:遇到空格或者回车就会停止

char str[100];

cin>>str;		//输入字符串时,遇到空格或者回车就会停止
cout<<str<<endl;//输出字符串时,遇到空格或者回车不会停止,遇到'\0'时停止
	printf("%s\n",str);

3.字符数组的常用操作
下面几个函数需要引入头文件

#include <string.h>

(1)strlen(str);,求字符串的长度

char a[5]={'a','b','c};
char b[5]="abc";	
cout<<strlen(b)        //输出结果: 3

(2)strcmp(a,b),比较两个字符串的大小,a<b返回-1,a==b返回0,a>b返回1。这里的比较方式是字典序!

char a[5]={'a','b','c'};
char b[5]="abc";
cout<<strcmp(a,b);

(3)strcpy(a,b),将字符串b复制给从a开始的字符数组。

char a[100]="hello world!",b[100];
cout<<strcpy(b,a)<<enld;
cort<<b    //输出结果:hello world!

二、类型string字符串

可变长的字符序列,比字符数组更加好用。需要引入头文件:

#include <strng>

1、定义和初始化

string s1;			//默认初始化,s1是一个空字符串
string s2=s1;		//s2是s1的副本,注意s2只是与s1值相同,并不指向同一地址
string s3="hiya";	//s3是该字符串字面值的副本
string s4(10,'c');  //s4的内容是“cccccccccc”

2、string的输入输出

(1)cin,cout

string s1,s2;
cin>>s1>>s2;
cout<<s1<<s2<<endl;	

注意:不能用printf直接输出string,需要写成printf("%s"s.c_str());

(2)使用getline读取一整行

string s;
getline(cin,s);
cout<<s<<endl;

3、string的empty和size操作(注意size是无符号整数,因此s.size() <=-1一定成立):

string s1,s2="abc";

cout<<s1.empty()<<endl; //为空返回1
cout<<s2.empty()<<endl;//不为空返回0

cout<<s2.size()	<<endl;

4、string的比较

支持>,<,>=,<=,!=等所有比较操作,按字典序进行比较。

5、为string对象赋值

string s1(10,'c'),s2;	//s1的内容是cccccccccc;s2是一个空字符串
s1=s2;					//赋值:用s2的副本
posted @   yanxinyi123  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示