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

南通网站建设优化公司怎么做中英文双语网站

南通网站建设优化公司,怎么做中英文双语网站,工程建设资料员报名网站,质监站网址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.pierceye.com/news/931907/

相关文章:

  • 上海门户网站的亮点网站开发平台及常用的开发工具
  • 广州h5设计网站公司网站建设从建立服务器开始
  • 如何网站建设全包12306网站多钱做的
  • 阳江北京网站建设中国平面设计在线
  • 上海城乡建设中级职称报名网站合肥网站建设之4个细节要注意事项
  • 洮南网站建设哪家好鞍山信息港招聘信息网
  • 大气手机网站wordpress 添加设置
  • 公司创建网站销售wordpress缩略图支持外链图
  • php网站开发案例教程 dvdwordpress淘宝客自适应模板
  • 做建筑设计网站可以推广的网站有哪些
  • 安徽省建设厅证书查询官方网站关键词优化公司如何选择
  • io游戏网站青岛网站优化排名
  • 怎样建设网站?(怎样注册域名?如何选择主机?网站应有哪些功能模块网站备案可以变更吗
  • 欧美男女直接做的视频网站广告投放跟网站建设一样吗
  • 建网站的流程费用广州比较大的外贸公司
  • wordpress 调用站外api广州优化公司推广
  • 自贡建设专业网站设计企业网站建设专家
  • 重庆潼南网站建设哪家便宜淄博做网站电话
  • 下载官方网站合肥建站公司seo
  • 做网站还是做app好科技部政服务服平台
  • 东阿聊城做网站的公司seo顾问培训
  • 临海高端营销型网站建设地址建设网站有什么要素构成
  • wordpress 照片分享昌平网站建设推广优化seo
  • 石家庄做网站的公司有哪些做企业网站一般要多少钱
  • 电脑十大免费游戏网站万能搜索引擎入口
  • 菏泽网站建设公司排名有没有专做推广小说的网站
  • 东莞网站建设搭建因酷网站建设
  • 连云港百度推广网站建设ph域名网站
  • 网站建设营销模板网站开发招聘职位
  • 如何做网站的教程网站怎么建设以及维护