个人网站备案内容,智慧景区网站建设,网站建设设计制作,九龙坡集团网站建设string 容器基本概念 C 风格字符串 ( 以空字符结尾的字符数组 ) 太过复杂难于掌握#xff0c;不适合大程序的开发#xff0c; 所以 C 标准库定义了一种 string 类#xff0c;定义在头文件。 String 和 c 风格字符串对比#xff1a; u Char*是一个指针#xff0c; …string 容器基本概念 C 风格字符串 ( 以空字符结尾的字符数组 ) 太过复杂难于掌握不适合大程序的开发 所以 C 标准库定义了一种 string 类定义在头文件。 String 和 c 风格字符串对比 u Char*是一个指针 String 是一个类 string 封装了 char 管理这个字符串是一个 char 型的容器。 u String 封装了很多实用的成员方法 查找 find拷贝 copy 删除 delete 替换 replace 插入 insert u 不用考虑内存释放和越界 string 管理 char* 所分配的内存。每一次 string 的复制取值都由 string 类负责维护不用担心复制越界和取值越界等。 string 构造函数 string();//创建一个空的字符串 例如 : string str; string(const string str);//使用一个 string 对象初始化另一个 string 对象 string(const char* s);//使用字符串 s 初始化 string(int n, char c);//使用 n 个字符 c 初始化 string 基本赋值操作 string operator ( const char * s); //char* 类型字符串 赋值给当前的字符串 string operator ( const string s); // 把字符串 s 赋给当前的字符串 string operator ( char c); // 字符赋值给当前的字符串 string assign( const char *s); // 把字符串 s 赋给当前的字符串 string assign( const char *s, int n); // 把字符串 s 的前 n 个字符赋给当前的字 符串 string assign( const string s); // 把字符串 s 赋给当前字符串 string assign( int n, char c); // 用 n 个字符 c 赋给当前字符串 string assign( const string s, int start, int n); // 将 s 从 start 开始 n 个 字符赋值给字符串 string 存取字符操作 char operator []( int n); // 通过 [] 方式取字符 char at( int n); // 通过 at 方法获取字符 string 拼接操作 string operator ( const string str); // 重载 操作符 string operator ( const char * str); // 重载 操作符 string operator ( const char c); // 重载 操作符 string append( const char *s); // 把字符串 s 连接到当前字符串结尾 string append( const char *s, int n); // 把字符串 s 的前 n 个字符连接到当前字 符串结尾 string append( const string s); // 同 operator() string append( const string s, int pos, int n); // 把字符串 s 中从 pos 开始 的 n 个字符连接到当前字符串结尾 string append( int n, char c); // 在当前字符串结尾添加 n 个字符 c string 查找和替换 int find( const string str, int pos 0 ) const ; // 查找 str 第一次出现位置 , 从 pos 开始查找 int find( const char * s, int pos 0 ) const ; // 查找 s 第一次出现位置 , 从 po s 开始查找 int find( const char * s, int pos, int n) const ; // 从 pos 位置查找 s 的前 n 个字符第一次位置 int find( const char c, int pos 0 ) const ; // 查找字符 c 第一次出现位置 int rfind( const string str, int pos npos) const ; // 查找 str 最后一次位 置 , 从 pos 开始查找 int rfind( const char * s, int pos npos) const ; // 查找 s 最后一次出现位置 , 从 pos 开始查找 int rfind( const char * s, int pos, int n) const ; // 从 pos 查找 s 的前 n 个字符 最后一次位置 int rfind( const char c, int pos 0 ) const ; // 查找字符 c 最后一次出现位置 string replace( int pos, int n, const string str); // 替换从 pos 开始 n 个 字符为字符串 str string replace( int pos, int n, const char * s); // 替换从 pos 开始的 n 个字 符为字符串 s string 比较操作 /* compare 函数在 时返回 1 时返回 -1 时返回 0 。 比较区分大小写比较时参考字典顺序排越前面的越小。 大写的 A 比小写的 a 小。 */ int compare( const string s) const ; // 与字符串 s 比较 int compare( const char *s) const ; // 与字符串 s 比较 string 子串 string substr( int pos 0 , int n npos) const ; // 返回由 pos 开始的 n 个字符 组成的字符串 string 插入和删除操作 string insert( int pos, const char * s); // 插入字符串 string insert( int pos, const string str); // 插入字符串 string insert( int pos, int n, char c); // 在指定位置插入 n 个字符 c string erase( int pos, int n npos); // 删除从 Pos 开始的 n 个字符 string 和 c-style 字符串转换 //string 转 char* string str itcast ; const char * cstr str.c_str(); //char* 转 string char * s itcast ; string str(s); 在 c 中存在一个从 const char 到 string 的隐式类型转换却不存在从一个 string 对象到 Cstring 的自动类型转换。对于 string 类型的字符串可以通过 cstr() 函数 返回 string 对象对应的 C_string. 通常程序员在整个程序中应坚持使用 string 类对象直到必须将内容转化为 char 时才将其转换为 C_string. 提示 : 为了修改 string 字符串的内容下标操作符 [] 和 at 都会返回字符的引用。但当字 符串的内存被重新分配之后可能发生错误. string s abcdefg ; char a s[ 2 ]; char b s[ 3 ]; a 1 ; b 2 ; cout s endl; cout ( int *)s.c_str() endl; s pppppppppppppppppppppppp ; //a 1; //b 2; cout s endl; cout ( int *)s.c_str() endl;