C++程序设计:字符串复制

需积分: 10 2 下载量 18 浏览量 更新于2024-08-24 收藏 8.66MB PPT 举报
"这篇资源是关于C++编程的,特别是字符串复制的一个实例,出自谭浩强版的C++程序设计教程。程序展示了如何将一个字符串`a`的内容复制到另一个字符串`b`中,这是C++中常见的字符串操作。同时,提到了C++语言的发展历史和主要特点,强调了C++作为结构化语言的灵活性和高效性,以及其程序的可移植性。" 在C++中,字符串通常是以字符数组的形式存在的。在提供的代码示例中,定义了两个字符数组`a`和`b`,`a`初始化为"I am a boy"。`main`函数内部的循环用于将`a`中的每个字符逐个复制到`b`中。这个过程通过索引变量`i`进行,`i`从0开始,每次循环增加1,直到遇到字符串结束标志`\0`。在循环内部,`*(b+i)=*(a+i)`这条语句实现了字符的复制,其中`*`是解引用操作符,用于访问数组中的元素。等价的写法`b[i]=a[i]`也被提及,它们都表示将`a`中当前索引处的字符赋值给`b`的相应位置。 字符串在C++中以`\0`字符作为结束标识,这意味着每个字符串都有一个空字符作为其结尾,表示字符串的结束。因此,在复制完所有非空字符后,需要手动在`b`的末尾添加`\0`,以确保`b`也是一个有效的字符串。这通过`*(b+i)=‘\0’;`实现,这里的`i`是最后一个复制字符的索引加1,确保`\0`被添加在正确的位置。 C++语言的主要特点包括: 1. 结构化:C++支持结构化编程,它的语言结构清晰,使得大型程序的组织和管理变得容易。 2. 高级与低级的结合:C++不仅有高级语言的抽象和便利,还提供了对底层硬件的直接访问,如位运算,使得程序执行效率高且功能强大。 3. 可移植性:C++程序在不同平台之间移植相对容易,因为它的标准库和语言特性是跨平台的。 4. 语法规则的灵活性:C++允许程序员有很大的设计自由度,但这对初学者来说既是优点也是挑战,因为调试和理解程序可能需要更多的时间和经验。 这段资源不仅讲解了一个具体的C++字符串操作,同时也介绍了C++语言的基本特点,对于学习C++编程的初学者来说是一份有价值的资料。

优化以下代码:#include <iostream> #include<string.h> using namespace std; class Book { private:     char bookname[30];     char authers[30];     char publishing_house[40];     int pages;     float price; public:     char getbookname();     char getauthers();     char getpublishing_house();     int getpages();     float getprice();          void setbookname(char *a);     void setauthers(char *a);     void setpublishing_house(char *a);     void setpages(int a);     void setprice(float a);     Book(char*a,char*b,cahr*c,int d,float e)     {         strcpy(bookname,a);         strcpy(authers,b);         strcpy(publishing_house,c);         pages=d;         price=e;     } }; char getbookname() {     char*a=bookname;     return a; } char getauthers() {     char*a=authers;     return a; } char getpublishing_house() {     char*a=publishing_house;     return a; } int getpages() {     int a=pages;     return a; } float getprice() {     float a=price;     return a; } void setbookname(char *a) {     strcpy(bookname,a); } void setauthers(char *a) {     strcpy(authers,a); } void setpublishing_house(char *a) {     strcpy(publishing_house,a); } void setpages(int a) {     pages=a; } void setprice(float a) {     price=a; } int main() {      Book a(char a="《C++程序设计》",char b="谭浩强编制",char c="清华大学出版社",d=484,e=36.00);      Book b(char a="《吹牛大王历险记》",char b="拉斯伯等编著",char c="天津人民出版社",d=149,e=12.80);     cout<<a.getbookname()<<"  "<<a.getauthers()<<"  "<<a.getpublishing_house()<<"  "<<"页数:"<<a.getpages()<<"价钱:"<<a.getprice()<<endl;     cout<<b.getbookname()<<"  "<<b.getauthers()<<"  "<<b.getpublishing_house()<<"  "<<"页数:"<<b.getpages()<<"价钱:"<<b.getprice()<<endl;     return 0; }

2023-05-22 上传