浅谈C++对于C的特性区别--1

一.定义字符串

C++提供了string类来定义字符串

string的特点:不需要考虑数据越界的问题,虽本质还是字符数组,但他不是以'\0'结尾,而是优化掉了'\0'

1.string在输入输出时的特点:

输出:

string方式:直接输出字符串名

std::string s = "abc";
std::cout << s << std::endl;

字符数组的方式:

占位符:“%s”

char c[] = "abc";
std::cout << c << std::endl;
printf("%s\n", c);

输入:string方式:直接输出字符串名

std::string s = "abc";
std::cin >> s;//无需考虑字符串长度问题

字符数组的方式,直接输入字符数组中(需要考虑数组越界的问题)

char c[] = "abc";
std::cin >> c;//输入字符串长度超过3则会出现错误
scanf("%s", c)

2.字符串长度

字符数组的方式,strlen(字符串函数),不包括‘\0’,返回值就是字符串长度

char c[] = "abc";
std::cout << strlen(c) << std::endl;//3
std::cout << strlen("abcd") << std::endl;//4

string方式:

字符串.length()或者字符串.size() 不包括‘\0’

std::string s = "abc";
std::cout << s.length() << std::endl;//3
std::cout << s.size() << std::endl;//3

数组元素个数表示数组的元素数量(包括'\0')

char c[] = "abc";
std::cout << sizeof(c) << std::endl;//4
char c1[10] = "abc";
std::cout << sizeof(c1) << std::endl;//10
std::string s = "abc";
std::cout << sizeof(s) << std::endl;//40 预留40的长度,长度不够会总动添加

3.字符串的访问

字符数组的访问:

char c[] = "abc";
std::cout << c[1] << std::endl;//b
c[1] = 'q';
std::cout << c << std::endl;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值