字符串函数
memset
void* memset(void* ptr, int value, size_t num);//地址 字符 字节数
案例:
#include <iostream>
#include <cstring>
int main() {
char buffer[50];
// 使用 memset 将 buffer 的前 50 字节设置为 0
memset(buffer, 0, sizeof(buffer));
std::cout << "Buffer after memset: '" << buffer << "'" << std::endl;
return 0;
}
memcpy
void* memcpy(void* dest, const void* src, size_t n);
dest:目标内存地址
src:源内存地址
n:要复制的字节数
#include <iostream>
#include <cstring> // 包含 memcpy 的头文件
struct Node {
int id;
char name[20];
};
int main() {
Node src = {1, "Example"};
Node dest;
// 使用 memcpy 拷贝结构体
memcpy(&dest, &src, sizeof(Node));
std::cout << "Dest ID: " << dest.id << ", Name: " << dest.name << std::endl;
return 0;
}
memcmp
int memcmp(const void* ptr1, const void* ptr2, size_t n);
memcmp 用于比较两个内存区域(ptr1 和 ptr2)的前 n 个字节。
strcmp
int strcmp(const char* str1, const char* str2);
str1:第一个字符串
str2:第二个字符串
#include <iostream>
#include <cstring> // 包含 strcmp 的头文件
int main() {
const char* str1 = "Hello";
const char* str2 = "World";
// 使用 strcmp 比较字符串
int result = strcmp(str1, str2);
if (result < 0) {
std::cout << "\"" << str1 << "\" is less than \"" << str2 << "\"" << std::endl;
} else if (result > 0) {
std::cout << "\"" << str1 << "\" is greater than \"" << str2 << "\"" << std::endl;
} else {
std::cout << "\"" << str1 << "\" is equal to \"" << str2 << "\"" << std::endl;
return 0;
}
strlen
#include <cstring> // 需要包含此头文件
const char* str = "Hello, world!";
size_t length = strlen(str); // length 将为 13
原文地址:https://blog.csdn.net/m0_69093426/article/details/143432459
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!