C++ 相关的string 函数(memcpy、memove、strtok、strchr、strlcpy)
C++ 函数 string 相关 memcpy
2023-09-14 08:56:53 时间
一、memcpy和memove
void* memove(void*destin , void* source, size_t count) { //进行这样的判断是为了解决拷贝重叠的情况 if (destin > source) { //这里拷贝的时候还可以提高效率 //因为CPU单次可以拷贝的最大字节是8个 //所以完全可以用long* 替代 char*(前提是count>8) char* a = (char*)destin; char* b = (char*)source; while (count--) { *b++ = *a++; } } else { char* a = (char*)destin + count; char* b = (char*)source + count; while (count--) { *b-- = *a--; } } return destin; }
二、strtok
参考博客https://www.cnblogs.com/Bob-tong/p/6610806.html
三、strchr
描述
C 库函数 char *strchr(const char *str, int c) 在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。
声明
下面是 strchr() 函数的声明。
char *strchr(const char *str, int c)
参数
- str -- 要被检索的 C 字符串。
- c -- 在 str 中要搜索的字符。
返回值
该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL。
实例
四、strlcpy
原型: size_t strlcpy(char *dst, const char *src, size_t size);
功能:C语言标准库函数strlcpy,是更加安全版本的strcpy函数,在已知目的地址空间大小的情况下,把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,
并不会造成缓冲区溢出。
使用 strlcpy,就不需要我们去手动负责 /0 了,仅需要把 sizeof(dst) 告之 strlcpy 即可。当src的长度大于等于size时,拷贝size-1个字符到dst中,并自动填充‘\0’,
而且strlcpy返回的是src字符串的长度,而strncpy返回的是dest的指针
注意:第三个参数是dst地址空间的大小
使用
https://www.cnblogs.com/chenyg32/p/3739564.html
相关文章
- [C++]Qt 如何处理密集型耗时的事情(频繁调用QApplication::processEvents)
- C++虚析构函数的使用
- 【C/C++学院】0829-位容器multimapmutisetString/算法函数兰不达表达式以及类重载/GPU编程
- C++:fread、fwrite函数用法
- C/C++每日一练(20230330)
- C++中string类的操作函数。
- C++ 操作DLL的函数 Loadlibrary GetProcAddress FreeLibrary
- C++库研究笔记--用__attribute__((deprecated)) 管理过时代码
- C++函数返回右值引用
- C++容器类对象函数參数问题
- C++模板中的函数式参数
- c++ 纯虚函数和抽象类那些事(一)
- C++中类的(static)静态成员变量与(static)静态成员函数
- C++最小函数模板demo(六十一)
- C++primer学习笔记(三)——Chapter 5
- c++与c#混合编程
- C++、STL标准模板库和泛型编程 ——迭代器、 算法、仿函数(侯捷)
- C++编程经验(4):不要在构造函数和析构函数中使用虚函数
- C++使用技巧(十四):ubuntu16.04--C++ (Cpp) PCM示例与pcm及音频算法的参考资料
- 【C++要笑着学】继承 | 子类默认成员函数 | 单继承与多继承 | 钻石继承 | 虚拟继承 | 继承和组合
- 设计模式C++实现——工厂模式
- VC++中视频采集系统(摄像头的制作,串口通信的应用)