// convert string to wstring std::wstring to_wstring(const std::string& str, const std::locale& loc = std::locale()) { std::vector<wchar_t> buf(str.size()); std::use_facet<std::ctype<wchar_t>>(loc).widen(str.data(),//ctype<cha…
感觉基本功还是不扎实,虽然能做些程序但是现在看来我还是个初学者(primer),试着完成习题结果还得修修改改. 废话不多说,实现功能很简单,<C++ Primer>9.5.2节习题. // 将s中所有oldVal替换成newVal void replace(string& s, const string& oldVal, const string& newVal); 对字符串进行替换,实际上是先找到字符串s中的匹配部分,将匹配部分(oldVal)删除,然后插入要替换的字…
两种最重要的标准库---string和vector string和vector是两种最重要的标准库类型,string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列. 一.标准库类型string   1.定义和初始化string对象:初始化string对象的方式有 string s1   默认初始化,s1是一个空串   string s2(s1)   s2是s1的副本 string s2=s1   等价于s2(s1),s2是s1的副本 string s3("value&qu…
1. 标准库类型 string string表示可变长的字符序列,使用string必须首先包含string头文件.如何初始化类的对象是由类本身决定的. int n; string s1;//默认初始化,s1是空字符串 string s2(s1);//s2是s1的副本,等价于string s2 = s1; string s3("value");//s3是字面值"value"的副本,除了字面值后面的那个空字符外,等价于string s3 = "value&qu…
在我们平常写的c/c++程序,一些算法题中,我们常常会用到c标准库中string.h文件中的函数,这些函数主要用于处理内存,字符串相关操作,是很有用的工具函数.而且有些时候,在笔试或面试中也会出现让你来实现某个函数的情况(比如strcpy).而且里面有些函数时间长不用就生疏了,本文就是要全面回顾这些函数. 1.NULL NULL是一个宏,可以扩展为空指针常量.空指针常量是一个等于零的整数常量表达式,后者是如(void *)0一样的从0转换为空指针void *.(A null-pointer co…
string 到 wstring的转换_一景_新浪博客     string 到 wstring的转换    (2009-08-10 20:52:34)    转载▼    标签:    杂谈        分类: CEGUI     在CEGUI中为了显示中文,常常需要将string转换为wstring,在网上查找了好几种方法,发现有的转换不了汉字,有的函数抽风,转换过来都是空的.最终还是找到了解决问题的办法,拿出来共享一下:          std::wstring  StringToWS…
定义和初始化string对象 初始化string对象方式: string s1;//默认初始化,s1是一个字符串 string s2(s1);//s2是s1的副本 string s2 = s1;//等价于s2(s1),s2是s1的副本 string s3("value");//s3是字面值"value"的副本,除了字面值最后的那个空字符外 string s4(n, 'c');//把s4初始化为由连续n个字符串c组成的串 拷贝初始化:使用等号(=)初始化一个变量,编译…
<C++ Primer 4th>读书摘要 最重要的标准库类型是 string 和 vector,它们分别定义了大小可变的字符串和集合.这些标准库类型是语言组成部分中更基本的那些数据类型(如数组和指针)的抽象.另一种标准库类型 bitset,提供了一种抽象方法来操作位的集合. 标准库string类型 有一种情况下,必须总是使用完全限定的标准库名字:在头文件中.理由是头文件的内容会被预处理器复制到程序中. #include <string> using std::string; 几种初…
我的strcat: char *strcat(char *dest,char *src) { char * reval = dest; while(*dest) dest++; while(*src) *dest++ = *src++ ; *dest = *src; return reval; } MSVC: char * __cdecl strcat ( char * dst, const char * src ) { char * cp = dst; while( *cp ) cp++; /…
stirng类型 简介: C++标准库提供的类型:string 长度可变的字符串 操作简单  仅为包含个人常用函数 头文件 string 类型与其它的标准库类型相同,都需要包含对应的头文件 #include<string> using namespace std; string 类型的定义和初始化 定义及初始化 解释 string s1 = "C++"; 创建字符串s1, 如果省略 = "C++" 则为空串 stirng s2(s1); 创建字符串s2并…
C++中支持的字符串处理的函数库叫String,但它不是STL,却与STL操作十分相似. 1.声明: 使用String之前要有以下头文件 #include<string> using namespace std; 声明方法 string s; //声明一个string对象 s ]; //声明一个string对象数组s 初始化string对象 直接初始化:利用小括号完成: 拷贝初始化:利用等号完成拷贝过程(减少使用): string s1; //定义一个空字符 string s2 = s1; /…
硬件:STM32F103C8T6 平台:MDK-AMR V4.70 1.创建一个Keil uVision 的工程 要点:相同类型的源文件放在一起以便于管理       2.添加标准库源文件 3.添加几个必要的源文件 包括: core_cm3.c stm32f10x_it.c system_stm32f10x_it.c stm32f10x_conf.h 4.指定头文件路径 5.添加必要的预处理标志 本例为 USE_STDPERIPH_DRIVER, STM32F10X_MD 6.添加一个main函…
std::wstring StringToWString(const std::string &str) { std::wstring wstr(str.length(),L' '); std::copy(str.begin(), str.end(), wstr.begin()); return wstr; } //只拷贝低字节至string中 std::string WStringToString(const std::wstring &wstr) { std::string str(w…
先说结论(不一定适用所有环境): 1) GCC默认开启了返回值优化(RVO),除非编译时指定“-fno-elide-constructors”: 2) 现代C++编译器一般都支持返回值优化: 3) string的拷贝构造和拷贝赋值是浅拷贝. 测试环境: 1) gcc (GCC) 4.8.5 2) g++ (GCC) 4.8.5 3) libstdc++.so.6.0.19 注:g++默认开启了返回值优化, 使用“-O0”不能关闭编译器的返回值优化, 而应使用“-fno-elide-constru…
1. string:通用字符串操作 string模块在很早的Python版本中就有了.以前这个模块中提供的很多函数已经移植为str对象的方法,不过这个模块仍保留了很多有用的常量和类来处理str对象. 1.1 常量 string.ascii_letters 下文所述ascii_lowercase和ascii_uppercase常量的拼接.该值不依赖于语言区域. string.ascii_lowercase 小写字母‘abcdefghijklmnopqrstuvwxyz’.此值不依赖于语言环境,并且…
我写的memchr: void *memchr(const void *buf, char ch, unsigned count){ unsigned ; while(*(buf++) != ch && cnt <= count){cnt++;} if(cnt > count) return NULL; else return buf; } 红色部分报错. 该错误为为ANSIC中认定的错误,是因为它坚持:进行算法操作的指针必须是确定知道其指向数据类型大小的. 但是GNU则不这么…
1.如果使用等号初始化一个变量,实际上执行的是拷贝初始化,编译器吧等号右侧的初始值拷贝到新创建的对象中去:如果不使用等号则执行的是直接初始化. std::string str = "Test"; // 拷贝初始化 std::, 'c'); // 直接初始化 2.在用 std::cin 读取string的时候,string对象会自动忽略开头的空白(即空格符,换行符,制表符等)并从第一个真正的字符串开始读起,直到遇见下一处空白为止.例如你输入的是“   Hello World!   ”,输…
我的memcmp: int memcmp(void *buf1, void *buf2, unsigned int count){ int reval; while(count && !(reval = (*(unsigned char *)buf1) - (*(unsigned char *)buf2))) { buf1 = (unsigned ; buf2 = (unsigned ; --count; } return reval; } MS VC: int __cdecl memcm…
参考:https://studygolang.com/pkgdoc 导入: import "strconv" strconv包实现了基本数据类型和其字符串表示的相互转换. 1)append系列 将值添加到现有的字节数组中 func AppendBool func AppendBool(dst []byte, b bool) []byte 等价于append(dst, FormatBool(b)...) func AppendInt func AppendInt(dst []byte,…
若想使用标准库的string类需要使用如下声明: #include <string> Using std::string: Using std::wstring: 那么就可以使用这两个类了:以string为例子介绍其对外接口: String类的构造函数 String  s1; // String  s2(s1); String  s3(“hollo world!”); String  s4(n, ‘c’); string 对象的操作 s.empty() 如果 s 为空串,则返回 true,否则…
标准库的string有一个substr函数用来截取子字符串.一般使用时传入两个参数,第一个是开始的坐标(第一个字符是0),第二个是截取的长度. #include <iostream> #include <string> using namespace std; int main(int argc, char* argv[]) { string name("rockderia"); ,)); cout << firstname << end…
标准库 string 类型 string 类型支持长度可变的字符串.C++ 标准库将负责管理与存储字符相关的内存,以及提供各种实用的操作.标准库string 类型的目的就是满足对字符串的一般应用. 与其它的标准库类型一样,用户程序要使用 string 类型对象.必须包括相关头文件.假设提供了合适的 using 声明,那么编写出来的程序将会变得简短些: #include <string> using std::string; 1.1 string 对象的定义和初始化 string 标准库支持几个…
python 标准库 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:Unicode字符数据库 stringprep:互联网字符串准备工具 readline:GNU按行读取接口 rlcompleter:GNU按行读取的实现函数 二进制数据 struct:将字节解析为打包的二进制数据 codecs:注册表与基类的编解码器 数据类型 datetime:基于日期与时间工具 calendar:通用月份函数 col…
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 相关的内存,因为vetcor是类模版,对应多个不同类型,比如int,string,或者自己定义的数据类型等. 程序开头应如下声明 #include <iostream> #include <vector> #include <string> using std::strin…
Python内置模块就是标准库(模块)吗?或者说Python的自带string模块是内置模块吗? 答案是:string不是内置模块,它是标准库.也就是说Python内置模块和标准库并不是同一种东西. 什么是内置模块?在Python官方的文档这里有说到: Python’s standard library is very extensive, offering a wide range of facilities as indicated by the long table of contents…
C 标准库 <assert.h> 简介 C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息. 已定义的宏 assert 指向另一个宏 NDEBUG,宏 NDEBUG 不是 <assert.h> 的一部分.如果已在引用 <assert.h> 的源文件中定义 NDEBUG 为宏名称,则 assert 宏的定义如下: #define assert(ignore) ((void)0) 库宏 下面列出了头…
方法一:需要调用windows的api函数进行转换,在vs2017上试验转换成功 #ifdef _MSC_VER #include <Windows.h> #endif // _MSC_VER wstring strToStdWString(const string& str) { wstring wStr; int len = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)str.c_str(), str.size(), NULL, 0); TCHAR…
先插一个小知识点 string str = "abc" str += 'd'; cout<<str<<endl;  //"abcd"   所以: string+char是被允许的. string 转char* 的时候  string.c_str() 和string.data()的区别 c_str()返回的以'\0'结尾 data()返回的不以'\0'结尾 copy(p,n,size_type_off = 0);  从string类型对象中最多…
就在近日,Facebook宣布开源了内部使用的C++底层库,总称folly,包括散列.字符串.向量.内存分配.位处理等,以满足大规模高性能的需求. 这里是folly的github地址:https://github.com/facebook/folly 在folly项目的Overview.md中,谈到了folly库的初衷: It complements (as opposed to competing against) offerings such as Boost and of course s…
本文地址:http://www.cnblogs.com/archimedes/p/c-library-string.html,转载请注明源地址. 1.背景知识 <string.h>中声明的函数是对标准C的一个重要补充,它们支持C语言把文本作为字符数组操作的传统. string.h是C语言中C标准库的头文件,其中包含了宏定义.常量以及函数和类型的声明,涉及的内容除了字符串处理之外,还包括大量的内存处理函数:因此,string.h这个命名是不恰当的.在string.h中定义的函数十分常用,作为C标…