当前位置: 首页 > news >正文

济南网站建设服务2024疫情最新消息今天

济南网站建设服务,2024疫情最新消息今天,优设计网站建设,网站开发中写在前面(祝各位新春大吉!兔年如意!) 【本文持续更新中】面向初学者撰写专栏,个人原创的学习C/C笔记(干货)所作源代码输出内容为中文,便于理解如有错误之处请各位读者指正请读者评论回复、参与投票&#xf…

写在前面(祝各位新春大吉!兔年如意!)

  • 【本文持续更新中】
  • 面向初学者撰写专栏,个人原创的学习C/C++笔记(干货
  • 所作源代码输出内容为中文,便于理解
  • 如有错误之处请各位读者指正
  • 请读者评论回复、参与投票,反馈给作者,我会获得持续更新笔记干货的动力。

致粉丝:可以在阅读完我的文章后,自己尝试写一点原创心得(哪怕一行字也好)。
               希望众(尽管840个🤣)粉丝多多支持、浏览、自我创作@_@


知识点概览

写在前面(祝各位新春大吉!兔年如意!)

知识点概览

C++ Primer Plus编程练习4.13笔记

一.姓名成绩年龄打印

1.预处理指令#define

2.char类型

3.getline(); C++库函数(重点)

二.string类

 1.头文件 string 

2.string声明变量

3.getline()函数在string类操作

三.使用strcpy和strcat复制字符串

1.Visual Stdio2022 编译器解除警报错误

2.strcpy 复制字符串的函数

3.strcat 附加字符串的函数

四.使用string对象和string类的粘贴与拼接

1.string类的粘贴方法

2.string类的输入(见前文)

3.string类的拼接方法

五.C++结构(OOP的基石)

 六.C++结构数组

结语

C++ Primer Plus编程练习4.13笔记

一.姓名成绩年龄打印

编写一个C++程序,输出姓名、成绩与年龄。注意,英文输入姓名包含多个单词(中间有空格)。
另外,上调成绩字母,若输入A则上调为B。

//4.13_1.cpp
//整行输入函数cin.getline();
#include<iostream>
#define NameMax 100
using namespace std;
int main()
{char firstName[NameMax];//英文习惯,名前姓后char lastName[NameMax];//lastname为姓,firstname为名char grade;int age;cout << "请输入你的名:\n";cin.getline(firstName,NameMax);//库函数,接受字符串对象名与字符串长度信息做参数cout << "请输入你的姓:\n";cin.getline(lastName, NameMax);//整行输入,检测到Enter自动截断输入cout << "请输入你的成绩(字母等级):\n";cin >> grade;grade += 1;cout << "请输入你的年龄:\n";cin >> age;cout << "姓名:"<<lastName<<","<< firstName <<endl;cout << "成绩:" << grade<<endl;//等级+1,ASCII码+1cout << "年龄:" << age << endl;return 0;
}

1.预处理指令#define

#define NameMax 100
定义全局常量NameMax为100
就像 #include<iostream> 一样,在C++预处理器中,编译器提前了解到要使用头文件 iostream ,这条预处理指令的宏 NameMax 定义为 100 ,全局可用,自动将出现 NameMax的地方置换为值100。

2.char类型

char firstName[NameMax];
char lastName[NameMax];
char grade; 
char类型可以声明字符或字符串(数组)。
char 变量名 ;声明一个字符,可以容纳数字、字母等。
单一字符可以执行算术运算,本例中读取输入的字母,并给其ASCII码+1,再有cout来将类型自动还原,从ASCII码值转换为字符。
char 变量名[字符串长度]; 声明一个字符串,可以容纳多个数字、字母,句子、词组等信息。
此程序将字符串长度设置为名叫NameMax值为100的常量。

!注意:字符串(数组)实际存储比数值长度短1的

3.getline(); C++库函数(重点)

面向行的输入getline()函数,通常有两个参数(后续介绍第三个参数),在头文件istream中,是C++中cin输入的类成员函数,可以不受空格影响,而是在读取到 Enter 键或达到输入上限时截断输入。
示例:
cin.getline(firstName,NameMax); cin通过句点“.”操作符访问它的成员函数getline(); ,示例中让getline函数读取长度为NameMax-1的名叫firstName的数组(字符串),并将读取值返回给该数组。
注:因为函数读取最后会加上空字符标志字符串(数组)结束,同时不会储存换行符,而get();函数会读取并储存换行符。
常用格式:
cin.getline(数组名,数组长度)

源代码运行示例:

二.string类

用string类改写程序清单4.4
(此处不展示原程序清单4.4,原程序使用cin.getline()函数,定义2个长为20的字符串存储姓名与甜点,再打印出来。)

//4.13_2.cpp
//C++中的string类,打印姓名、甜点
#include<iostream>
#include<string>//包含string类的头文件
using namespace std;
int main()
{string name, dessert;//声明2个string类变量cout << "Enter your name:\n";getline(cin,name);	//获取整行输入,参数1的cin说明从哪里获取输入//参数2的name是string类变量,自动调整变量长度//注:char[];声明数组(字符串)类型,string声明普通变量。cout << "Enter your favourite dessert:\n";getline(cin, dessert);cout << "I have some delicious " << dessert<< " for you," << name<<".\n";return 0;
}

 1.头文件 string 

旧版C++实现中使用C++库中头文件<string.h>,新标准中直接使用<string>头文件

2.string声明变量

string类与char类型不同, char[]; 声明数组(字符串)类型, string 声明普通变量
像其他声明一样,只需要在 string 后加上变量名即可。

3.getline()函数在string类操作

常用格式:
getline(cin,string类变量名)

这里的getline函数不是cin的类成员函数。因为最初设计getline时没有string类,所以在cin中也没有直接的对于string类的输入操作。后加入了上述格式的整行输入操作,然而这里的getline()函数不附属于cin类之下,存在于头文件中。
上面的getline函数 getline(cin,string类变量名)  中,cin为getline函数指明获取输入的位置,而长度是由string类的变量自己调整的,所以省去具体长度数值。
输出时string类变量按照欧通变量处理。

源代码运行示例:

三.使用strcpy和strcat复制字符串

编写一个程序,要求用户先输入其名,再输入其姓;然后程序使用一个逗号和空格将姓和名组合起来,并存储和显示组合结果。请使用char数组和头文件cstring中的函数。

//4.13_3.cpp
//使用strcpy和strcat复制字符串
#pragma warning(disable : 4996)//解除编译器strcpy和strcat警告
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main()
{char firstName[40];//英文习惯,名前姓后char lastName[40];//lastname为姓,firstname为名char total[84];cout << "请输入你的名:\n";cin >> firstName;cout << "请输入你的姓:\n";cin >> lastName;strcpy(total, lastName);strcat(total, ", ");strcat(total, firstName);cout << "姓名:" <<total << endl;return 0;
}

1.Visual Stdio2022 编译器解除警报错误

#pragma warning(disable : 4996) 

解除编译器警告。在出现一些对于编译器给出的完全不会出问题的错误警告时,可以使用上述代码,可以将上面的 4996 用实际警告标号来代替

2.strcpy 复制字符串的函数

strcpy可以将char数组(或普通字符串)从参数二复制到参数一
示例:

strcpy(total, lastName); 

本例中将存储在 char数组 lastName 中的内容复制到 char 数组 total 中。
若编译器提示可能出现未知错误(参数一字符串的长度太小时可能“装不下”参数二字符串里的信息),可以用strcpy_s代替或者使用strncpy的第三个参数指出要复制的字符串长度

3.strcat 附加字符串的函数

strcat可以将char数组(或普通字符串)从参数二附加(再次将内容复制添加到已经有内容的char数组中)到参数一
示例:

strcat(total, ", ");
strcat(total, firstName);

在本例中①将普通字符串", "(注:半角双引号中包括半角逗号与空格)附加到 char 数组 total 中。

              ②将存储在 char数组 firstName 中的内容附加到 char 数组 total 中。
若编译器提示可能出现未知错误(参数一字符串的长度太小时可能“附加不完”参数二字符串里的信息,出现字符覆盖),可以用strcat_s代替或者使用strncat的第三个参数指出要附加的字符串长度

注:strcpy函数和strcat函数都在头文件 csrting 中。
       string类变量执行复制附加时可以直接像普通变量一样。

举例:
#include<string>//包含string类变量声明//#include<cstring>//包含strcpy、strcat等操作函数,此程序中可以不用string str1,str2.str3,str4;
str1="abcd";
str2="efg";
str3=str1;//将str1直接赋(复制)给str3
str4=str1+str2;//将str1和str2拼在一起,再赋给str4
str3+=str2;//将str2附加给str3(注意:此时str3中已有信息)
//上行较为复杂的代码,等同于 str3=str3+str2;  

源代码运行示例:

四.使用string对象和string类的粘贴与拼接

如编程练习三,使用string对象和头文件string中的函数改写编程练习三中的程序。

//4.13_4.cpp
//使用string对象和string类的粘贴与拼接
#include<iostream>
#include<string>
using namespace std;
int main()
{string firstName, lastName, total;//lastname为姓,firstname为名cout << "请输入你的名:\n";getline(cin,firstName);cout << "请输入你的姓:\n";getline(cin, lastName);total = firstName + ", " + lastName;cout << "姓名:" << total << endl;return 0;
}

1.string类的粘贴方法

如同普通int类型的常数,string类是字面值的操作,可以使用如下操作:

#include<string>
#include<iostream>
int main()
{int a,b,c;a=1;b=2;c=a;//把a的值粘贴给cstring str1,str2,str3;//声明string类对象str1="hello";str2="world";str3=str1;//把str1的字面值粘贴给str3return 0;
}

直接使用
string类对象1=string类对象2;
来把 string类对象2的字面值粘贴给 string类对象1 。

2.string类的输入(见前文)

常用格式:
getline(cin,string类变量名)

这里的getline函数不是cin的类成员函数。因为最初设计getline时没有string类,所以在cin中也没有直接的对于string类的输入操作。后加入了上述格式的整行输入操作,然而这里的getline()函数不附属于cin类之下,存在于头文件中。
上面的getline函数 getline(cin,string类变量名)  中,cin为getline函数指明获取输入的位置,而长度是由string类的变量自己调整的,所以省去具体长度数值。
输出时string类变量按照欧通变量处理。

3.string类的拼接方法

如同普通int类型的常数,string类是字面值的操作,可以使用如下操作:

#include<string>
#include<iostream>
int main()
{int a,b,c;a=1;b=2;c=a;//把a的值粘贴给cstring str1,str2,str3;//声明string类对象str1="hello";str2="world";str3=str1;//把str1的字面值粘贴给str3return 0;
}

直接使用(两string类对象拼接后赋给空的string类对象)
string类对象1=string类对象2+string类对象3;

或者(一个string类对象和原有字面值的string类对象拼接并覆盖重新赋给这个原有字面值的string类对象)
string类对象1=string类对象2+string类对象1;
(前后顺序对 string类对象1 的字面值有影响)

源代码运行示例:

五.C++结构(OOP的基石)

结构CandyBar包含3个成员。第一个成员存储了糖块的品牌,第二个成员存储糖块的质量(可以有小数),第三个成员存储了糖块的卡路里含量(整数)。请编写一个程序,声明这个结构,创建1个名为snack的 CandyBar 变量,并将其成员分别初始化为“Mocha Munch”、2.3和350。初始化应在声明snack时进行。最后,程序显示snack 变量的内容。

//4.13_5.cpp
//C++结构
#include<iostream>
using namespace std;
struct CandyBar//结构类型的变量CandyBar,描述包含的数据类型
{char name[20];//char数组(字符串),品牌double weight;//double数,重量int calorie;//int整型,卡路里
};
int main()
{//设置结构类型CandyBar名下的变量,给结构类型CandyBar名下的变量赋值,这时可以省略structCandyBar snack ={"Mocha Munch",//结构中描述的name类char数组2.3,          //结构中描述的weight类double浮点数350           //结构中描述的calorie类int整数};//snack是一个CandyBar类的struct结构CandyBar snack2 = { "Baby Bear", 1.2, 280};//此处仅作展示,实际程序中不需要//snack2是一个CandyBar类的struct结构cout << "糖果品牌:" << snack.name<<endl;//访问结构类型CandyBar名下,变量snack中的name类的值。未使用指针转型。cout << "糖果重量(kg):" << snack.weight << endl;cout << "糖果卡路里含量:" << snack.calorie << endl;return 0;
}

在此连接文章:C++结构(OOP的基石)

源代码运行示例:

 六.C++结构数组

结构CandyBar包含3个成员。第一个成员存储了糖块的品牌,第二个成员存储糖块的质量(可以有小数),第三个成员存储了糖块的卡路里含量(整数)。请编写一个程序,声明这个结构,创建1个名为snack的 CandyBar 变量,并将其成员分别初始化为“Mocha Munch”、2.3和350。初始化应在声明snack时进行。最后,程序显示snack 变量的内容。 

//4.13_6.cpp
//使用C++结构数组
#include<iostream>
using namespace std;
struct CandyBar//结构类型的变量CandyBar,描述包含的数据类型
{char name[20];//char数组(字符串),品牌double weight;//double数,重量int calorie;//int整型,卡路里
};
int main()
{//设置结构类型CandyBar名下的变量,给结构类型CandyBar名下的变量赋值,这时可以省略structCandyBar snack[3];//CandyBar类型数组snack,包含3个元素。snack[0]={"Mocha Munch",//结构中描述的name类char数组2.3,          //结构中描述的weight类double浮点数350           //结构中描述的calorie类int整数};//snack是一个CandyBar类的struct结构数组,snack[0]是该数组的第一个元素snack[1] = { "Alps        " ,4.5,450};snack[2] = {"Little Bear",2.1,210};cout << "糖果品牌:" << snack[0].name;//访问结构类型CandyBar名下数组snack第一个元素中的name类的值。未使用指针转型。cout << "\t糖果重量(kg):" << snack[0].weight;cout << "\t糖果卡路里含量:" << snack[0].calorie<<endl;cout << "糖果品牌:" << snack[1].name;cout << "\t糖果重量(kg):" << snack[1].weight;cout << "\t糖果卡路里含量:" << snack[1].calorie << endl;cout << "糖果品牌:" << snack[2].name;cout << "\t糖果重量(kg):" << snack[2].weight;cout << "\t糖果卡路里含量:" << snack[2].calorie << endl;return 0;
}


结语

今天我们共同学习了 C++  等重要知识。
学习编程是一条漫长的路,贵在坚持。每天学习来提升自己的的编程能力,成为耀眼的IT之星。
各位读者跟随我的脚步,我们共同努力,共同进步吧!

返回作者主页

专栏文档:C++学习/温习:新型源码学编程(一)(优质好文)

                  C++学习/温习笔记:源码学编程(二)

专栏下一篇文档:【待更新】

其它文章:

                  C语言求幂运算(尽大支持)——中文式奇特命名

                  简洁易懂地介绍C++参数

                  学习C++基本数值类型 

                  C/C++基础运算符


 如有探讨问题联系邮箱:yhlz0613@163.com

对于文章中的错误请各位批评指正,我一定及时更正

请在投票后评论回复意见,如有关于写博文的指导也请您回复提出

 <!--感谢浏览                    诸君慢行且留言          过客匆匆常回访-->

http://www.yidumall.com/news/81129.html

相关文章:

  • 网站端网站开发站长平台百度
  • 中国疫情最新消息那里严重上首页seo
  • 南通营销平台网站建设百度seo引流怎么做
  • 景点介绍网站开发设计百度关键词排名突然下降很多
  • WordPress取消强密码sem和seo
  • 惠州建站方案推广关键词排名方法
  • 淄博抖音关键词优化百度seo推广免费
  • 海南网站建设推广公司双滦区seo整站排名
  • 网站seo外链怎么做自助建站系统破解版
  • 定制礼品深圳seo外包公司
  • 如何进行网络营销方式百度seo排名如何提升
  • 湖北城乡建设厅官方网站软文范例100字
  • 如何开网站卖东西济南seo网站排名关键词优化
  • 专门做旅游攻略的网站有哪些历下区百度seo
  • 凡科免费做网站苏州seo关键词优化外包
  • 网站设计分析南宁seo优化公司排名
  • 长安网站建设公司哪家好在线bt种子
  • wordpress用户前端创建相册seo
  • 电子商务网站建设毕业论文关键词林俊杰在线听免费
  • 建设网站所需技术百度 营销推广怎么操作
  • 天威虎建设集团官方网站百度搜索广告
  • 企业网站建设的本质及特点百度知道官网手机版
  • 做旅游宣传图的网站有哪些百度关键词优化软件网站
  • 微信网站登录湖北网站seo设计
  • 怎么进行网站建设my63777免费域名查询
  • 福州网站建设要找嘉艺网络以营销推广为主题的方案
  • 龙岗网站建设联系电话网络营销的现状及问题
  • 自学做网站要多久手机优化软件
  • 微信整合wordpressseo优化广告
  • 怎么做一个门户网站seo推广软件品牌