string和wstring
容器
allocate //分配器
iterator //访回string的迭代器
const_iterator //访回string的常量迭代器
pointer //指向T(char)的指针
const_pointer //指向T(char)的常量指针
const_reference //T(char)的常量引用
reference //T(char)的引用
const_reverse_iterator //访回string的方向常量迭代器
reverse_iterator //访回string的方向迭代器
difference_type //int类型
size_type unsigned int类型
traits_type
value_type //对象类型T(char)
字符串操作
const char &operator[](int n)const;
const char &at(int n)const; //返回当前字符串中第n个字符的位置,越界会抛出out_of_range异常
const char *data()const; //返回一个非null终止的c字符数组,其大小为size()的返回值,
const char *c_str()const; //返回以null终止的c风格字符串
int copy(char *s, int n, int pos = 0) const; //把当前串中以pos开始的n个字符拷贝到s字符数组中,返回实际拷贝的数目
string& assign(const char *s); //用新字符串填充,等同operator=
string& append(const char *s); //把s连接到当前字符串结尾
clear() //清空字符串
string& replace(size_type p,size_type n,const char *s);//删除从p开始的n个字符,然后在p处插入s
string& insert(size_type p,const char *s); //在位置p插入s
iterator erase(iterator first, iterator last); //删除[first,last)之间的所有字符,
substr(pos) const; //返回pos开始的n个字符组成的字符串
void swap(string& str); //交换当前字符串与str的值
特性
size_type capacity() const; //返回容量即不必增加内存即可存放的元素个数
void reserve(size_type n); //强制修改容量为n
size_type max_size() const; //返回string对象中可存放的最大字符串长度,不是capacity()的大小
size_type size() const; //返回当前字符串的大小
size_type length() const; //返回当前字符串的长度,跟size()相识。
void resize(size_type n, char c = char()); //把字符串当前大小置为n,并用字符c填充不足的部分
bool empty() const; //当前字符串是否为空与size()效率相同
字符串比较
int compare(const string& str) const; //比较字符串大小。小于str返回-1;相等返回0;
size_type find(char c,size_type pos = 0) const; //从pos开始查找c的位置。失败返回string::npos
size_type find_first_of(char c,size_type pos = 0) const; //从pos开始查找字符c第一次出现的位置。失败返回string::npos。
size_type find_first_not_of(char c,size_type pos = 0)const;//从pos开始查找c不在当前字符串第一次出现的位置。失败返回string::npos。
size_type rfind(char c,size_type pos = npos) const;//从当前字符串pos开始从后向前查找。默认是最后一个位置,失败返回string::npossize_type find_last_of(const char *s,size_type pos=spos) const;//从pos开始从后向前查找不在s的最后一个位置。失败返回string::npos。size_type find_last_not_of(char c,size_type pos = 0) const;//从pos开始从后向前查找不在字符c中出现的最后一个位置。失败返回string::npos。
const_iterator begin() const; //返回string的起始位置
const_reverse rbegin() const; //返回反向迭代器
const_iterator end() const; //返回string的最后一个字符后面的位置
const_iterator rend(); //返回反向迭代器
push_back //在尾部插入字符
allocator_type get_allocator(); //返回本字符串的配置器
字符操作
strcpy(char*,char*)char* |
lstrcpy //把参2拷贝到参1中。返回指针或NULL |
wcscpy |
_tcscpy |
_mbscpy |
strncpy(char*,char*,int)char* |
把参2里的至多n个字符复制到参1。填充空字符 |
wcsncpy |
_tcsnccpy |
_mbsncpy |
strcat(char*,char*)char* |
lstrcat把参2复制到参1之后。参1要且足够大的字符数组 |
wcscat |
_tcscat |
_mbscat |
strncat(char*,char*,int)char* |
把参2里最多(不多余参2长度)的n个字符复制到参1之后 |
wcsncat |
_tcsncat |
_mbsncat |
strdupr(char*)char* |
复制字符串,需要调用free释放 |
wcsdupr |
_tcsdupr |
_mbsdupr |
strrev(char*)char* |
反转字符串 |
wcsrev |
_tcsrev |
_mbsrev |
strset(char*,int)char* |
用指定字符填充缓冲区 |
wcsset |
_tcsset |
|
strlwr(char*) |
将字符串转换成大写 |
wcslwr |
_tcslwr |
|
strupr(char*) |
将字符串转换成小写 |
wcsupr |
_tcsupr |
|
strxfrm(char*,char*,int) |
复制源字符串到目标字符串 |
wcsxfrm |
_tcsxfrm |
|
|
|
|
|
|
字符串查找 |
|
|
|
|
strchr(char*,char) |
查寻字符并返回第一次出现的位置的指针。没有返回NULL |
wcschr |
_tcschr |
|
strstr(char*,char*) |
从参1中查找字符串,如果没有返回null |
wcsstr |
_tcsstr |
|
strcspn(char*,char*) |
返回参1中第一个在s2中出现的字符下标值 |
wcscspn |
_strcspn |
|
strpbrk(char*,char*) |
在参1中找出第一个出现在参2中的任一字符,返回指针没有返回NULL |
wcspbrk |
_tcspbrk |
|
strtok(char*,char*) |
在参1中查寻分隔符参2,并修改成’\0’ |
|
|
|
strrchr(cs,c) |
在cs中查寻c并返回c最后一个出现的位置,没有时返回NULL |
wcsrchr |
_tcsrchr |
|
strspn(cs,ct) |
返回字符串中第一个不在指定字符串中出现的字符 |
wcsspn |
_tcsspn |
|
|
|
|
|
|
字符串比较 |
|
|
|
|
strcmp(cs,ct) |
比较字符串大小,大于返回1等于返回0 |
wcscmp |
_tcscmp |
|
stricmp() |
忽略大小写比较字符串 |
wcsicmp |
_tcsicmp |
|
strncmp(cs,ct,n) |
比较字符串大小,至多比较n个字符 |
wcsncmp |
_tcsnccmp |
|
strcoll(s1,s2) |
用环境变量LC_COLLATE比较两个字符串大小 |
wcscoll |
_tcscoll |
|
|
|
|
|
|
字符串特性 |
|
|
|
|
strlen(const char*) |
字符串长度(不包含‘\0’) |
wcslen |
_tcsclen |
|
strerror(n) |
返回与错误编号n相关的错误信息串(指向该错误信息串的指针) |
wcserror |
_tcserror |
|
tolower(int c) //当c是大写字母时返回对应小写字母,否则返回c本身
toupper(int c) //当c是小写字母时返回对应大写字母,否则返回c本身
字符处理函数(
isalpha(c)int //c是字母字符
isdigit(c)int //c是数字字符
isalnum(c)int //c是字母或数字字符
isspace(c) int //c是空格、制表符、换行符
isupper(c)int //c是大写字母
islower(c) //c是小写字母
iscntrl(c) //c是控制字符
isprint(c) //c是可打印字符,包括空格
isgraph(c) //c是可打印字符,不包括空格
isxdigit(c) //c是十六进制数字字符
ispunct(c) //c是标点符号
writeToStream //向指定流中输出字符串
ZeroMemory(PVOID,SIZE_T) //内存清零
memset(void*,int,int) //空间设值 1地址23大小memset(my,NULL,sizeof(my));
memcpy(s,ct,n) //从ct处复制n个字符到s处,返回s
memmove(s,ct,n) //从ct处复制n个字符到s处,返回s,这里的两个段允许重叠
memcmp(cs,ct,n) //比较由cs和ct开始的n个字符,返回值定义同strcmp
memchr(cs,c,n) //在n个字符的范围内查寻c在cs中的第一次出现,如果找到,返回该位置的指针值,否则返回NULL
swab() //把指定内存内每两个字节相交换,结果放置到另一块内存
memlcmp() //比较两块内存间大小,大小写无关
calloc(size_t, size_t) //分配一块存储 n个大小为size的对象,初始化用0填充。失败NULL。就是比malloc有个初始化free释放
malloc(size_t size) //分配一块足以存放大小为size的存储,返回该存储块的地址,不能满足时返回NULL
realloc(void *p, size_t size) //将p所指存储块调整为大小size,返回新块的地址。不能满足要求时返回NULL,此时原块不变
void free(void *p) //释放以前分配的动态存储块
_chdir(char*)int //设定当前工作目录成功返回0
_chdrive(int)int //设定当前工作驱动器号
_getcwd(char*,int)char* //获得当前工作目录
_getdcwd(int,char*,int)char* //获取当前驱动器
_getdrive()int //获取驱动器
_mkdir(char*)int //建立新目录
_rmdir(char*)int //删除目录
_searchenv(char*,char*,char*) //在环境变量中查找文件
打开的文件分两种,一种是非缓冲区文件,一种是缓冲区文件
1.非缓冲文件系统:低级IO,是系统级的输入输出,它不设文件结构体指针,只能读写二进制文件,但效率高、速度快
2.缓冲文件系统:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,执行速度就快、效率高。
是系统调用返回的是文件句柄,文件的句柄是文件在文件描述副表里的索引,fopen是C的库函数,返回的是一个指向文件结构的指针。文件描述符,无缓冲操作
2.fopen用来打开普通文件,open主要用于设备文件。3.fopen是纯库函数, open实际上是一个系统调用,当然是被wrapper到库函数中去了。
_chsize(int,long)int //改变文件大小参1打开的文件参2新大小返回文件大小非0表示出错
_filelength(int)long //文件长度
_fstat(int,stat*)int //获取文件打开信息,成功返回0
_isatty(int)int //确定句柄是否与一个设备相连
_locking(int,int,long)int //锁定或解锁文件开始的指定长度
_setmode(int,int)int //设置打开文件方式
_open_osfhandle(long,int)int //将文件句柄映射成为C的流文件
_get_osfhandle(int)long //将C的流文件映射成为文件句柄
_access(char*,int)int //检测文件能否以指定方式打开或目录是否存在
_chmod(char*,int)int //改变文件访问权限
_fullpath(char*,char*int)char* //相对路径转换成完整路径
_makepath(char*,char*,char*,char*) //用4个组成成分建立一个路径字符串
_mktemp(char*)char* //返回一个临时文件路径传入namexxxxxx
_splitpath(char*,char*,char*,char*,char*)//将一个路径分解成4个组成成分
remove(char*) //删除文件路径
rename() //改名
_unlink() //删除由filename指定的文件。
_umask() //设置创建文件时自动设置的属性掩码
_stat() //获取path指定的有关文件或目录的信息,将它们存储在buffer所指的结构中。
fopen(char,char)FILE //打开文件
_fsopen() //打开与该文件共享的流并返回指向打开文件
_open(char*,int)int //打开文件并返回文件描述符
_sopen() //打开包含文件共享的文件并返回文件描述符
_pipe() //创建读写管道
freopen() //重新分配一个文件指针
_fdopen()
_fileno()
_get_osfhandle()
_open_osfhandle()