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

温州做高端网站公司排名中国网库网站介绍

温州做高端网站公司排名,中国网库网站介绍,专业网站建设价位,抓取wordpress背景图片1.String概念 string是STL的字符串类型#xff0c;通常用来表示字符串。而在使用string之前#xff0c;字符串通常是用char*表示的。 string和char*的区别#xff1a; string是一个类, char*是一个指向字符的指针。 string封装了char*#xff0c;管理这个字符串#x…1.String概念 string是STL的字符串类型通常用来表示字符串。而在使用string之前字符串通常是用char*表示的。 string和char*的区别 string是一个类, char*是一个指向字符的指针。 string封装了char*管理这个字符串是一个char*型的容器。也就是说string是一个容器里面元素的数据类型是char*。string不用考虑内存释放和越界。 string管理char*所分配的内存。每一次string的复制取值都由string类负责维护不用担心复制越界和取值越界等。 string提供了一系列的字符串操作函数 查找find拷贝copy删除erase替换replace插入insert 2.初始化–构造函数 默认构造函数 : string();//构造一个空的字符串string s1。拷贝构造函数 string(const string str);//构造一个与str一样的string。如string s1(s2)。 带参数的构造函数 string(const char *s); //用字符串s初始化 string(int n,char c); //用n个字符c初始化。 #include iostream #include string #include algorithmusing namespace std; // string的构造 void func1() {string s1 hello;string s2(world);string s3 s2; // 拷贝构造string s4(s1); // 拷贝构造string s5(10,a); // 字符串长度为10每个值都是acout s1 endl;cout s2 endl;cout s3 endl;cout s4 endl;cout s5 endl; }int main() {func1();system(pause);return 0; } 3.存取字符 string类的字符操作 const char operator[] (int n) const; const char at(int n) const; char operator[] (int n); char at(int n); operator[]和at()均返回当前字符串中第n个字符但二者是有区别的。 主要区别在于at()在越界时会抛出异常[]在刚好越界时会返回(char)0再继续越界时编译器直接出错。如果你的程序希望可以通过try,catch捕获异常建议采用at()。 string的长度 int length() const; //返回当前字符串的长度。长度不包括字符串结尾的\0。 bool empty() const; //当前字符串是否为空 string遍历 string的遍历可以分为数组方式和使用迭代器两种方式。 // 遍历 void func2() {string str hello world;// 1、用数组下标的方式for (unsigned int i 0; i str.length(); i){cout str[i] ;}cout endl;// 2、通过迭代器string::iterator it;for (it str.begin(); it ! str.end(); it){cout *it ;}cout endl;// at(index) 函数for (unsigned int i 0; i str.length(); i){cout str.at(i) ;}cout endl;// [] 和 at 区别当数组越界的时候[] 会直接让程序崩掉、at会抛出异常{try{for (unsigned int i 0; i str.length()10; i){// cout str[i] ;cout str.at(i) ;}cout endl;}catch (exception e){printf (捕获一个异常 %s\n, e.what());}}} string赋值操作 string operator(const string s);//把字符串s赋给当前的字符串 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个字符赋给当前字符串 4.和char*类型的转换 从string转换到char*的成员函数主要是 const char *c_str() const; //返回一个以’\0’结尾的字符串的首地址 把string拷贝到char*指向的内存空间的成员函数是 int copy(char *s, int n, int pos0) const; 把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中返回实际拷贝的数目。 注意要保证s所指向的空间足够大以容纳当前字符串不然会越界。 / string --- char* // char * --- string void func4() {string str hello world;// 返回 string 字符串的 char *类型指针const char *ps str.c_str();printf(str %s\n, ps); } 5.比较操作 int compare(const string s) const; //与字符串s比较 int compare(const char *s) const; //与字符串s比较 compare函数在时返回 1时返回 -1时返回 0。比较区分大小写比较时参考字典顺序排越前面的越小。大写的A比小写的a小。 6.string的连接和复制 // 连接和复制 void func3() {string str1 hello;string str2 world;// 两个字符串的连接string s3 1234 str1 str2 abc;str1 1234;cout str1 endl;cout s3 endl;// 复制string s4;s4 str1; // 重载 运算符cout s4 endl;// 对数组进行 复制 string --- char []char c[100] {0};str1.copy(c, 5);cout c endl; }7.查找和替换 // 查找和替换 void func5() {string str 123 hello 456 hello 789 hello abc hello;// 查找子串// 找到的是第一个相匹配的字符串的下标int index str.find(ahello, 0);if (index ! string::npos)cout index endl;index str.find(hello, 0);while (index ! string::npos){cout index endl;index str.find(hello, index1);}// 替换string str2 123 abc asdasdsa;str2.replace(1, 2, xxx);cout str2 endl;index str.find(hello, 0);while (index ! string::npos){str.replace(index, 5, HELLO);index str.find(hello, index1);}cout str endl; } 8.删除和插入 // 删除 void func6() {string str 123 hello 456 hello 789 hello abc hello;// 通过迭代器删除某一个元素str.erase(str.begin() 8);cout str endl;// 1、str.findint index str.find(b, 0);if (index ! string::npos)str.erase(str.begin()index);cout str endl;// 2、通过 查找算法 去 某个字符算法 操作都是迭代器 // 和 str 内置的 str.find 区分开 find 是算法库提供的函数 ,返回的是一个迭代器指向找到的元素string::iterator it find(str.begin(), str.end(), 9);if (it ! str.end())str.erase(it);cout str endl;str.erase(4, 5); // 从下标为 4 的位置开始删除5个元素如果没有第二个参数删除4之后所有的元素cout str endl;// 区间删除string str1 123 hello 456 hello 789 hello abc hello;// 删除方式 是 左闭 又开的 [begin, end)str1.erase(str1.begin(), str1.begin()4);str1.erase(str1.begin(), str1.end());cout str1 endl; } 9.算法相关 使用transform函数将string里面的字符进行大小写的转换具体的STL的算法另作介绍 #define _CRT_SECURE_NO_WARNINGS#include iostream #include iterator #include vector #include algorithm #include stringusing namespace std;void play() {string s1 AAAbbb;transform(s1.begin(), s1.end(), s1.begin(), toupper);cout s1 s1 endl;string s2 AAAbbb;transform(s2.begin(), s2.end(), s2.begin(), tolower);cout s2: s2 endl; }int main() { play();system(pause);return 1; }
http://www.zqtcl.cn/news/725762/

相关文章:

  • 商标设计网站猪八戒网站建设与设计教程
  • 网站建设积分wordpress添加右侧菜单
  • 网站策划资料方案天津优化公司
  • 做网站推广哪家公司好成都最正规的装修公司
  • 菜鸟建网站如何制作推广网站
  • 无锡企业建站系统广州品牌网站建设
  • 什么网站能免费做公众号封面wordpress主题打不开
  • 扬州外贸网站建设制作广告的软件
  • 一个主机怎么做两个网站百度上的网站怎么做
  • 济南建设工程业绩公示的网站wordpress载入等待
  • seo公司名字太原百度seo排名软件
  • 安徽省城乡建设厅网站拼多多关键词排名在哪里看
  • 素材下载网站开发wordpress微信付款插件
  • 网站有什么用河北廊坊建筑模板厂家
  • 永康住房和城乡建设部网站做网站 万户
  • 可信赖的常州网站建设做直播券的网站有多少
  • 网络营销案例分析pptseo策略是什么意思
  • 论坛网站建设视频青岛网站设计软件
  • 租用网站服务器价格清远医院网站建设方案
  • 房地产网站建设方案书福田所有车型
  • 网站功能描述高清视频网络服务器免费
  • 天台做网站微博推广效果怎么样
  • 苏州专门网站网站站长统计怎么做
  • 社交网站开发注意事项call_user_func_array() wordpress
  • 泉州企业免费建站个人网站设计与开发
  • 网站建设流程书籍互联网行业黑话
  • 山亭 网站建设wordpress 添加头像
  • 龙南县建设局网站新手如何做网络推广
  • 网站开发建设赚钱吗巩义旅游网站建设公司
  • 网站建设代码介绍网站顶部导航代码