字符数组与字符串处理函数

1. 字符数组

►用来存放字符型数据的数组称为字符数组,其元素是一个个的字符。

►字符数组的定义形式为:

char 字符数组名[常量表达式], ......

char s[20]; //定义字符数组
char s[4]={'J','a','v','a'}; //字符数组初始化

2. 字符串的概念

1)C++语言规定字符串是以'\0'(ASCII值为0)字符作为结束符的字符数组。

2)在程序中可以通过判断数组元素是否为空字符来判断字符串是否结束,换言之,只要遇到数组元素是空字符,就表示字符串在此位置上结束。

3)由于字符串实际存放在字符数组中,所以定义字符数组时数组的长度至少为字符串长度加1(空字符也要占位)。

4)字符串常量是字符串的常量形式,它是以一对双引号括起来的字符序列。

5)C++总是在编译时为字符串常量自动在其后增加一个空字符。

区分“a”和‘a’和a: 

char c; char s[10]=“hello.”;
c=‘a’; //正确 
c=“a”; //错误

C++语言总是在编译时为字符串常量自动在其后增加一个空字符, 例如"Hello"的存储形式为:

 如果在字符串常量中插入空字符,则字符串常量的长度会比看到的字符数目少(输出ABC),例如"ABC\0DEF"的存储形式为:

 3. 字符串的输入和输出

(1)使用标准输入输出流,将整个字符串一次输入或输出。

char str[80];
cin >> str; //输入字符串
cout << str; //输出字符串

(2)使用字符串输入输出函数

gets函数

char *gets(char *s);

gets函数输入一个字符串到字符数组s中。s是字符数组或指向字符数组的指针,其长度应该足够大,以便能容纳输入的字符串。

char str[80];
gets(str); //输入字符串

puts函数

int puts(char *s);

puts函数输出s字符串,遇到空字符结束,输完后再输出一个换行 ('\n')。s是字符数组或指向字符数组的指针,返回值表示输出字 符的个数。 puts输出的字符不包含空字符。

char str[80]="Programming";
puts(str); //输出字符串

C++标准库提供了兼容C语言的字符串处理函数,其头文件为 string.h。

(1)字符串复制函数strcpy

char str1[10],str2[]="Computer";
strcpy(str1,str2); //复制str2到str1

 (2)字符串复制函数strncpy

char str1[10], str2[]="Computer";
strncpy(str1,str2,4);//复制str2的前4个字符到str1

(3)字符串连接函数strcat

char str1[10]="ABC", str2[]="123";
strcat(str1,str2);//在str1后面连接str2,str2未变化

(4)字符串连接函数strncat

char str1[10]="ABC",str2[]="123456";
strncat(str1,str2,4);//将str2前4个字符连接到str1后面

(5)字符串比较函数strcmp(依次比较数组元素中的ASCII码值)

if (strcmp(str1,str2)==0)...... //比较字符串相等
if (strcmp(str1,str2)>0)......//比较str1大于str2

(6)计算字符串长度函数

n=strlen("Language"); //n=8,不包括\0

char str[20]="Visual Basic";
n=strlen(str); //n=12,包括空格

(7)字符串转换成数值函数

f=atof("123.456"); //f=123.456(浮点型)
i=atoi("-456"); //i=-456(整形)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木(。・ω・。)ノ♡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值