1、
strcpy用法:
原型声明:char *strcpy(char* dest, const char *src);
头文件:#include <string.h> 和 #include <stdio.h>
功能:把含有’\0’结束符的字符串复制到另一个地址空间,返回值的类型为char*。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
strcpy_s用法:
原型:三个參数时:errno_t strcpy_s(char *strDest, size_t size, const char *strSource);
功能:同strcpy()函数功能相同,不同之处在于参数中多了个size_t类型的参数,该参数为字符串dst的长度,当存在缓存区溢出的问题时(即src的长度大于dst的长度),strcpy_s()会抛出异常;而strcpy()结果则未定,因为它错误地改变了程序中其他部分的内存的数据,可能不会抛出异常但导致程序数据错误,也可能由于非法内存访问抛出异常。
strncpy用法:
头文件:#include <string.h>
语法:char *strncpy(char *destinin, char *source, int maxlen);
功能:strncpy函数用于将指定长度的字符串复制到字符数组中。
说明:C语言的库函数之一,来自 C语言标准库。如果n<source的长度,只是将source的前n个字符复制到destinin的前n个字符,不自动添加’\0’,也就是结果destinin不包括’\0’,需要再手动添加一个’\0’。如果source的长度小于n个字节,则以NULL填充destinin直到复制完n个字节。source和destinin所指内存区域不可以重叠且destinin必须有足够的空间来容纳source的字符长度+’\0’。
strncpy_s用法:
原型:
四个参数时:errno_t strncpy_s(char *strDest, size_t numberOfElements, const char *strSource, size_t count);
说明:
1.参数numberOfElements表明dest中的字节数,防止目标指针dest中的空间不够,同时返回值改成返回错误代码,而不是返回char*。
2.会在字符串结束处填补一个空字符。
3.count参数需要小于目标缓冲区大小。
2、C 库函数 int atoi(const char *str) 把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。
3、C 库函数 char *strrchr(const char *str, int c) 在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。
参数
- str -- C 字符串。
- c -- 要搜索的字符。以 int 形式传递,但是最终会转换回 char 形式。
返回值
该函数返回 str 中最后一次出现字符 c 的位置。如果未找到该值,则函数返回一个空指针。
4、strcmp(s1,s2) 判断两个字符串s1和s2是否相同,若str1==str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。
5、
char * strtok ( char * str, const char * delimiters );
该函数按分隔符分解字符串。参数:
str : 要被分解成一组小字符串的字符串。
delimiters : 包含分隔符的 C 字符串。
返回值:
该函数返回被分解的一个子字符串,如果没有可检索的字符串,则返回一个空指针。
6、C 库函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
7、c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同。这是为了与C语言兼容,在C语言中没有string类型,故必须通过string类对象的成员函数c_str()把string对象转换成c中的字符串样式。
用法:char c[20];
string s="1234";
strcpy(c,s.c_str());
c_str()返回的是一个临时指针,不能对其进行操作。一定要使用strcpy()函数 等来操作方法c_str()返回的指针。这跟str这个const char*的生命周期及string类的实现有关,string的c_str()返回的指针是由string管理的,因此它的生命期是string对象的生命期,而string类的实现实际上封装着一个char*的指针,而c_str()直接返回该指针的引用,因此string对象的改变会直接影响已经执行过的c_str()返回的指针引用。