目录
一、string
C++大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的string类。string类处理起字符串来会方便很多,完全可以代替C语言中的字符数组或字符串指针。使用string类需要包含头文件<string>,下面的例子介绍了几种定义string变量(对象)的方法:
#include <iostream>#include <string>
using namespace std
int maino
string sl;
string s2 = "c plus plus" string s3=52;
string s4 (5,"s'); return 0;
变量 s1 只是定义但没有初始化,编译器会将默认值赋给 s1,默认值是“"",也即空字符串,变量s2在定义的同时被初始化为"cplusplus”。与C风格的字符串不同,string的结尾没有结東标志“0”。
变量 s3 在定义的时候直接用 s2进行初始化,因此 s3的内容也是"cplus plus”.
变量s4被初始化为由5个's字符组成的字符串,也就是"sssss"
从上面的代码可以看出,string变量可以直接通过赋值操作符=进行赋值。string变量也可以用C风格的字符串进行赋值,例如,s2是用一个字符串常量进行初始化的,而s3则是通过s2变量进行初始化的。
在定义string类对象时,string类自身可以管理内存,程序员不必关注内存的分配细节。
#include <iostream>
using namespace std;
#include <string>
int main()
{
/*string str = "abcd";
string str1 = "1234";
cout << str + str1<< endl;
string str3 = str1;
cout << str3 << endl;
if (str == str1)
{
cout << "一样" << endl;
}
else
{
cout << "不一样" << endl;
}*/
string str = "abcd";
/*const char* p = str.c_str();
cout << p << endl;
str.append("1234");
cout << str << endl;
str.push_back('A');
cout << str << endl;*/
cout << str.size() << endl;
cout << str.length() << endl;
str.insert(3, "1234");
cout << str << endl;
system("pause");
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int main()
{
/*char str1[] = "abcd";
string str2 = "1234";
string str4 = "1234";
string str3 = str1 + str2;
cout << str3 << endl;
if (str2 == str4)
{
cout << "一样" << endl;
}
else
{
cout << "不一样" << endl;
}*/
string str = "abcd";
str.push_back('e');
str += 'f';
cout << str << endl;
/*str.clear();
cout << str << endl;*/
str.erase(2, 2);
cout << str << endl;
const char* p = str.c_str();
cout << strlen(str.c_str()) << endl;
cout << str.size() << endl;
cout << str.length() << endl;
str[1] = 'B';
cout << str << endl;
system("pause");
return 0;
}
二、class与struct的区别
c++中 struct 可以有构造和析构函数 可以有成员函数
在struct中也有访问修饰符
class默认修饰符为private struct 默认修饰符 public
class 继承默认是private struct 默认继承 public
class 可以使用模板 struct不能
#include <iostream>
using namespace std;
class AA
{
public:
int a;
AA()
{
a = 100;
}
void Show()
{
cout << a << endl;
}
};
struct BB
{
int a;
void (*pShow)(BB*);
};
void Show(BB*)
{
}
int main()
{
AA a;
a.Show();
system("pause");
return 0;
}