C++初学笔记5数组和字符串

1.C++没有提供自动防止超出整型限制的功能,可以使用头文件climits来确定限制情况。

2.常量33L的类型为long,常量33的类型为int

3.要创建数组,可使用声明语句,数组声明应指出以下三点:1.存储在每个元素中的值得类型2.数组名3.数组中的元素数。在C++中可以通过修改简单变量的声明,添加中括号(其中包含元素数目)来完成数组声明。通用格式typeName arrayName[arraySize];

4.C++数组初始化

首先,初始化数组时,可省略等号double earnings[4]{1.2e4,1.6e4,1.1e4,1.7e4}

其次,可以不在大括号内放置任何东西,这将把所有元素设为零

第三,列表初始化禁止缩窄转换

5.C风格的字符串有一种特殊性质“以空字符结尾”。

将字符数组初始化为字符串的方法----只需使用一个用引号括起来的字符串即可,这种字符串被称为字符串常量或者字符串字面值。Char bird[11]=”Mr.Cheeps”;

用引号括起来的字符串隐式的包括结尾的空字符,因此不用显式的包括它。各种C++输入工具通过键盘输入,将字符串读入到char数组中时,将自动加上结尾的空字符。当然要确保数组足够大,能够存储字符串中所有字符包括空字符。

字符串常量(实用双引号)不能与字符常量(使用单引号)互换。

有时候字符串很长,无法放在一行。C++允许拼接字符串字面值,即将两个用引号括起来的字符串合并成一个。事实上,任何两个由空白(空格、制表符、换行符)分隔的字符串常量都将自动拼接成一个。拼接时不会在被连接的字符串之间添加空格,第二个字符串的第一个字符将紧跟在第一个字符串的最后一个字符(不考虑\0)后面。第一个字符串中\0字符将被第二个字符串的第一个字符取代。

cout << "i'd give my right arm to be"" a great violinist.\n" << endl;

cout << "i'd give my right arm to be a great violinist.\n" << endl;

cout << "i'd give my right arm"

        "to be a great violent.\n" << endl;

数组中使用字符串

#include<iostream>;

#include<cstring>//for the strlen()function

int main() {

    using namespace std;

    const int size = 15;

    char name1[size];

    char name2[size] = "C++owboy";

    cout << "howdy!i'm" << name2;

    cout << " what's your name?\n";

    cin >> name1;

    cout << "well," << name1 << ",your name has";

    cout << strlen(name1) << "letters and is stored\n";//strlen()返回的是存储在数组中的字符串长度,不是数组长度,只计算可见的字符,不把空字符计算在内

    cout << "in an array of " << sizeof(name1) << " byte.\n";

    cout << "your initial is" << name1[0] << " .\n";

    name2[3] = '\0';//set to null character,这使得字符串在第3个字符后即结束

    cout << "here are the first 3 characters of my name:";

    cout << name2 << endl;

    return 0;

}

字符串输入

#include<iostream>;

int main() {

    using namespace std;

    const int size = 20;

    char name[size];

    char dessert[size];

    cout << "enter your name:\n";

    cin >> name;

    cout << "enter your favorite dessert:\n";

    cin >> dessert;

    cout << "i have some delicious " << dessert;

    cout << " for you," << name << ".\n";

    return 0;

}

这个程序运行结果显示cin使用空白(空格、制表符和换行符)来确定字符串的结束位置,这意味着cin在获取字符数组输入时只读取一个单词。读取该单词后,cin将该字符串放到数组中,并自动在结尾添加空字符。这个例子的实际结果是cinlily作为第一个字符串,并把它放到name数组中。这把grace留在输入队列中。当cin在输入队列中搜索用户喜欢的甜点时,发现了grace,因此cin读取grace,并将它放在dessert数组中。

Getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾。要调用这种方法可以使用cin.getline().有两个参数,第一个是用来存储输入行的数组的名称,第二个参数是要读取的字符数。如果这个参数为20,则函数最多读取19个字符。余下的空间用于存储自动在结尾出添加的空字符。

#include<iostream>;

int main() {

    using namespace std;

    const int size = 20;

    char name[size];

    char dessert[size];

    cout << "enter your name:\n";

    cin.getline(name,size);

    cout << "enter your favorite dessert:\n";

    cin.getline(dessert,size);

    cout << "i have some delicious " << dessert;

    cout << " for you," << name << ".\n";

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值