2. 加法运算实现连接;
string str1 = "C";
string str2 = "Language";
str1 = str1 str2;
3. 关系运算符实现比较;
5. 字符串数组:
也可以用string 定义一个数组:
string name[5] = { "ZK11111","ZK2222","ZK333","ZK44","ZK5", };
此时:
1. 一个字符串数组中可包含多个字符串变量;
2. 并不要求每一个元素具有相同的长度;
3. 字符串数组与字符数组存在着本质上的区别;
4. 每一个字符串元素中仅仅包含字符串本身的字符,而不包含"\0";
注:
实际上,编译系统对每一个字符串变量分配的都是固定的字节数,用来存放的是字符串的地址;
即在字符串变量中存放的是指针;
template<typename TT>
TT max(TT a,TT b,TT c)
{
if(b > a)
{
a = b;
}
if(c > a)
{
a = c;
}
return a;
}
int main()
{
string str1,str2,str3,temp;
cout << "Please Input three strings:" << endl;
cin >> str1 >> str2 >> str3;
cout << max(str1,str2,str3) << endl;
return 0;
}
动态分配和撤销内存运算符:new 和 delete
在C语言中是运用库函数 malloc 和 free 来分配和撤销内存空间的;
但是malloc 必须指定开辟空间的大小 : *p = ( type )malloc( sizeof() );
并且必须在程序中进行强制类型转换;
而在C 中增加了new ,delete 来代替:
如:
new int;
new int(100);
new char[10];
float *p = new float(3.14159) // 开辟一个存放实数的空间,并指定初为3.14159;
1. new 运算符的一般式为:
new 类型(初);并返回对应的指针类型;
但是用 new 分配数组空间时不能指定初;
2. delete 运算符的一般式:
delete []指针变量; // 注: 此处为指针变量;
如:
delete p;
char *pt = new char[10];
delete[] pt; // 指针变量前加[] 表示对数组空间的操作;
struct Student
{
char name[10];
int num;
char sex;
};
int main()
{
Student *p;
p = new Student;
strcpy(p->name,"ZK");
p->num = 100;
p->sex = 'F';
cout << p->name << ' ' << p->num << ' ' << p->sex << endl;
delete p;
return 0;
}
若由于内存不足等原因无法正常分配空间,则new 会返回一个NULL指针;
用户可以用此来判断是否正确分配;
注: new 和 delete 为运算符,而malloc 和 free 为函数!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-61530-8.html
即通过革命搞垮那些不合作的中东国家