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

洪江市网站网站系统开发

洪江市网站,网站系统开发,建筑工程公司宣传册设计样本,网页版游戏哪个好玩基本概念这里不解释了&#xff0c;代码中详细解释了BOOST程序库中对于字符串每一个方法的详细用法&#xff1a; 注意&#xff1a;这里每实践一个方法&#xff0c;都将上面实践过的方法进行了注释&#xff0c;如果全部取消注释&#xff0c;会出现重命名的问题。 #include <…

基本概念这里不解释了,代码中详细解释了BOOST程序库中对于字符串每一个方法的详细用法:

注意:这里每实践一个方法,都将上面实践过的方法进行了注释,如果全部取消注释,会出现重命名的问题。

#include <iostream>
#include <string>//boost类型转换头文件
#include <boost/lexical_cast.hpp>
//boost格式化字符头文件
#include <boost/format.hpp>
//boost轻量化字符串头文件
#include <boost/utility/string_ref.hpp>
//字符串算法头文件
#include <boost/algorithm/string.hpp>int main() {/*//C++自带的字符串转换:int ivalue = std::stoi("42");int lvalue = std::stol("122");long long llvalue = std::stoll("42222");double dbvalue = std::stod("42.222");std::string szStr = std::to_string(12138);std::cout << typeid(ivalue).name() << "\t" << typeid(lvalue).name() << "\t" << typeid(llvalue).name() << "\t" << typeid(dbvalue).name() << "\t" << typeid(szStr).name() << std::endl;std::cout << ivalue << "\t" << lvalue << "\t" << llvalue << "\t" << dbvalue << "\t" << szStr << std::endl;//输出:int     int     __int64 double  class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >//42      122     42222   42.222  12138//boost程序库的转换:int nValue = boost::lexical_cast<int> ("123");long lValue = boost::lexical_cast<long>("123456");long long llValue = boost::lexical_cast<long long>("123456789");double dbValue = boost::lexical_cast<double> ("12.123456");bool bValue = boost::lexical_cast<bool> ("1");std::string Str = boost::lexical_cast<std::string> (123456789);std::cout << typeid(nValue).name() << "\t" << typeid(lValue).name() << "\t" << typeid(llValue).name() << "\t" << typeid(dbValue).name() << "\t" << typeid(bValue).name() << "\t" << typeid(Str).name() << std::endl;std::cout << nValue << "\t" << lValue << "\t" << llValue << "\t" << dbValue << "\t" << bValue << "\t" << Str << std::endl;//输出:int     long    __int64 double  class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >//123     123456  123456789       42.222  123456789//使用bosot转换的时候,如果转化失败,会抛出异常:try {int nValue = boost::lexical_cast<int> ("123");long lValue = boost::lexical_cast<long>("123456");long long llValue = boost::lexical_cast<long long>("123456789");double dbValue = boost::lexical_cast<double> ("12.123456");bool bValue = boost::lexical_cast<bool> ("123");std::string Str = boost::lexical_cast<std::string> (123456789);std::cout << typeid(nValue).name() << "\t" << typeid(lValue).name() << "\t" << typeid(llValue).name() << "\t" << typeid(dbValue).name() << "\t" << typeid(bValue).name() << "\t" << typeid(Str).name() << std::endl;std::cout << nValue << "\t" << lValue << "\t" << llValue << "\t" << dbValue << "\t" << bValue << "\t" << Str << std::endl;}catch (boost::bad_lexical_cast &e) {std::cout << "error" << "\t" << e.what() << std::endl;}//输出:error   bad lexical cast: source type value could not be interpreted as target//也可以使用不抛出异常的方式,使用返回的bool来判断是否转换成功:int nNum;boost::conversion::try_lexical_convert(123456, nNum);std::cout << nNum << std::endl;boost::format fmt("%s-%d-%d-%d");std::cout << fmt % "fdjskalf;djska" % 2023 % 05 % 24<<std::endl;//输出:fdjskalf;djska-2023-5-24//也可以使用匿名对象的方式:std::cout << boost::format("%s-%d-%d-%d") % "format" % 2023 % 05 % 31 << std::endl;//输出:format-2023-5-31//实际上,底层进行了二次封装:basic_formatboost::basic_format<char> bfmt("%s-%d-%d-%d");std::cout << bfmt % "bfmit" % 222 % 111 % 000 << std::endl;//输出:bfmit-222-111-0//boost中的轻量化字符串://C++本身在进行字符串的操作的时候,会有一定的成本问题:比如说:const char* str = "This is a string";std::string Str(str);  //在这个过程中,存在一次string类的深拷贝过程//使用boost轻量化字符串:也可以使用=赋值的方法(注意这里是字符串的引用,所以不能修改原值boost::string_ref S1(str);boost::string_ref S2(Str);std::cout << S1 << "\t" << S2 << std::endl;     //输出:This is a string        This is a string//可以指定字符个数:boost::string_ref S3(str, 4);std::cout << S3 << std::endl;                //输出:This//字符串的判断:if (S3==S1.substr(0,4)) {std::cout << "==" << std::endl;}//可以在任意位置取出字符:std::cout << S1.front() << std::endl;     //Tstd::cout << S1.at(2) << std::endl;       //istd::cout << S1.back() << std::endl;      //g//含有迭代器:for (auto i = S1.begin(); i != S1.end(); i++) {std::cout << *i;}//This is a stringstd::cout << std::endl;//字符串的比对:这个方法,如同strcmp wcscmp返回0代表比对成功std::cout << S1.compare(S2) << std::endl;//可以取出原始字符串:const char* p = S1.data();std::cout << p << std::endl;       //This is a string//查找是否存在字串:auto a = S1.find("is");std::cout << typeid(S1.find("is")).name() << std::endl;      //unsigned intstd::cout << a << std::endl;        //返回第一次出现的位置//对字符串的判断/等操作,头文件:boost/algorithm/string.hppstd::string Str = "readmi.txt";//判断文件格式,也就是判断字符串尾:if (boost::ends_with(Str, ".txt")) {std::cout << "txt文件" << std::endl;}//判断头部:if (boost::starts_with(Str, "rea")) {std::cout << "rea" << std::endl;}//判断一个字符是否包含另一个字符串:if (boost::contains(Str, "read")) {std::cout << "contains" << std::endl;}//对字符串进行大小写转换:boost::to_upper(Str);std::cout << Str << std::endl;      //READMI.TXTboost::to_lower(Str);std::cout << Str << std::endl;      //readmi.txt//替换字符:replace_first:替换第一次出现的/replace_last:替换最后一次出现的/replace_all:替换所有std::string Str = "readmeread.txt";//boost::replace_first(Str, "read", "MMMM");//std::cout << Str << std::endl;       //MMMMmeread.txt//boost::replace_last(Str, "read", "MMMM");//std::cout << Str << std::endl;       //readmeMMMM.txtboost::replace_all(Str, "read", "MMMM");std::cout << Str << std::endl;         //MMMMmeMMMM.txt//空格删除://1. 删除所有空格:std::string Str = "     abcde     ";//boost::trim(Str);std::cout << Str << std::endl;       //abcde//2. 删除左边的空格://boost::trim_left(Str);               //abcde     astd::cout << Str << "a" << std::endl;//3. 删除右边的空格:boost::trim_right(Str);std::cout << Str << "a" << std::endl;   //abcdea*///字符串的查找:std::string Str = "readreadreadmereadreadread.txt";std::cout << typeid(boost::find_first(Str, "read")).name() << std::endl;     //返回值类型:class boost::iterator_range<class std::_String_iterator<class std::_String_val<struct std::_Simple_types<char> > >auto a = boost::find_first(Str, "read");std::cout << a << std::endl;                               //read//boost::find_last方法:取出最后出现的//从字符串中取出字符://取出头部6字节:auto head = boost::find_head(Str, 6);std::cout << typeid(boost::find_head(Str, 6)).name() << std::endl;     //class boost::iterator_range<class std::_String_iterator<class std::_String_val<struct std::_Simple_types<char> > > >std::cout << head << std::endl;    //readre//取出尾部6字节:auto tail = boost::find_tail(Str, 6);std::cout << typeid(boost::find_tail(Str, 6)).name() << std::endl;     //class boost::iterator_range<class std::_String_iterator<class std::_String_val<struct std::_Simple_types<char> > > >std::cout << tail << std::endl;    //ad.txtreturn 0;
}

如果发现文章中有错误,还请大家指出来,我会非常虚心地学习,我们一起进步!!!

http://www.hkea.cn/news/640505/

相关文章:

  • 比汉斯设计网站素材图片搜索识图入口
  • php网站架设教程英雄联盟韩国
  • 做毕设好的网站百度客服电话24小时
  • 上海手机网站建设电话咨询seo综合查询系统
  • wordpress 4.6 中文版沈阳seo
  • 文件管理软件天津搜索引擎优化
  • 九亭网站建设全国疫情高峰时间表最新
  • 青岛网站建设公司武汉seo收费
  • mvc网站建设的实验报告怎么做优化
  • 有官网建手机网站千锋教育培训多少钱费用
  • b2c交易模式的网站有哪些百度营销客户端
  • flash 学习网站重庆网站seo多少钱
  • 年终总结ppt模板免费下载网站小红书seo排名规则
  • 自己架设网站口碑营销的产品有哪些
  • 湖北省网站备案最快几天天津百度推广排名优化
  • app在线开发制作平台seo网络优化前景怎么样
  • 商务网站的基本情况网站建设工作总结
  • 山西建设厅网站网络销售怎么聊客户
  • 软装素材网站有哪些seo网络排名优化哪家好
  • 邯郸市做网站建设网络口碑营销案例分析
  • 罗湖网站建设联系电话西安核心关键词排名
  • 如何编写网站电脑清理软件十大排名
  • 怎么给企业制作网站seo关键词排名优化哪好
  • 高仿服装网站建设西安百度关键词推广
  • 网站单页面怎么做的百度seo站长工具
  • 网站建设谢辞企业营销型网站有哪些
  • 免费网站制作申请行业关键词一览表
  • 网站建设费关键词排名提高方法
  • 搭建淘宝客网站源码最近发生的新闻事件
  • 网站模版网网站关键词排名优化价格