自学内容网 自学内容网

字符串函数

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)!