C语言字符串函数与内存函数怎么用

发布时间:2022-04-24 10:28:12 作者:iii
来源:亿速云 阅读:156

C语言字符串函数与内存函数怎么用

目录

  1. 引言
  2. 字符串函数
  3. 内存函数
  4. 总结

引言

C语言是一种广泛使用的编程语言,尤其在系统编程和嵌入式开发中占有重要地位。C语言提供了丰富的库函数来处理字符串和内存操作。这些函数不仅简化了编程任务,还提高了代码的可读性和效率。本文将详细介绍C语言中常用的字符串函数和内存函数,并通过示例代码展示它们的用法。

字符串函数

strlen

strlen函数用于计算字符串的长度,不包括终止符\0

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    size_t length = strlen(str);
    printf("Length of the string: %zu\n", length);
    return 0;
}

strcpy

strcpy函数用于将一个字符串复制到另一个字符串中。

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, World!";
    char dest[50];
    strcpy(dest, src);
    printf("Copied string: %s\n", dest);
    return 0;
}

strncpy

strncpy函数用于将一个字符串的前n个字符复制到另一个字符串中。

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, World!";
    char dest[50];
    strncpy(dest, src, 5);
    dest[5] = '\0'; // 手动添加终止符
    printf("Copied string: %s\n", dest);
    return 0;
}

strcat

strcat函数用于将一个字符串追加到另一个字符串的末尾。

#include <stdio.h>
#include <string.h>

int main() {
    char dest[50] = "Hello, ";
    char src[] = "World!";
    strcat(dest, src);
    printf("Concatenated string: %s\n", dest);
    return 0;
}

strncat

strncat函数用于将一个字符串的前n个字符追加到另一个字符串的末尾。

#include <stdio.h>
#include <string.h>

int main() {
    char dest[50] = "Hello, ";
    char src[] = "World!";
    strncat(dest, src, 3);
    printf("Concatenated string: %s\n", dest);
    return 0;
}

strcmp

strcmp函数用于比较两个字符串。

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    int result = strcmp(str1, str2);
    if (result == 0) {
        printf("Strings are equal\n");
    } else if (result < 0) {
        printf("str1 is less than str2\n");
    } else {
        printf("str1 is greater than str2\n");
    }
    return 0;
}

strncmp

strncmp函数用于比较两个字符串的前n个字符。

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    int result = strncmp(str1, str2, 3);
    if (result == 0) {
        printf("First 3 characters are equal\n");
    } else if (result < 0) {
        printf("str1 is less than str2\n");
    } else {
        printf("str1 is greater than str2\n");
    }
    return 0;
}

strchr

strchr函数用于在字符串中查找指定字符的第一次出现。

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    char *result = strchr(str, 'W');
    if (result != NULL) {
        printf("Character found: %s\n", result);
    } else {
        printf("Character not found\n");
    }
    return 0;
}

strrchr

strrchr函数用于在字符串中查找指定字符的最后一次出现。

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    char *result = strrchr(str, 'o');
    if (result != NULL) {
        printf("Character found: %s\n", result);
    } else {
        printf("Character not found\n");
    }
    return 0;
}

strstr

strstr函数用于在字符串中查找子字符串的第一次出现。

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    char *result = strstr(str, "World");
    if (result != NULL) {
        printf("Substring found: %s\n", result);
    } else {
        printf("Substring not found\n");
    }
    return 0;
}

strtok

strtok函数用于将字符串分割为一系列子字符串。

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World! How are you?";
    char *token = strtok(str, " ,!");
    while (token != NULL) {
        printf("Token: %s\n", token);
        token = strtok(NULL, " ,!");
    }
    return 0;
}

内存函数

memcpy

memcpy函数用于将一块内存的内容复制到另一块内存中。

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, World!";
    char dest[50];
    memcpy(dest, src, strlen(src) + 1);
    printf("Copied string: %s\n", dest);
    return 0;
}

memmove

memmove函数用于将一块内存的内容移动到另一块内存中,即使内存区域重叠也能正确处理。

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    memmove(str + 7, str, 5);
    printf("Moved string: %s\n", str);
    return 0;
}

memcmp

memcmp函数用于比较两块内存的内容。

#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello";
    char str2[] = "World";
    int result = memcmp(str1, str2, 5);
    if (result == 0) {
        printf("Memory blocks are equal\n");
    } else if (result < 0) {
        printf("str1 is less than str2\n");
    } else {
        printf("str1 is greater than str2\n");
    }
    return 0;
}

memset

memset函数用于将一块内存的内容设置为指定的值。

#include <stdio.h>
#include <string.h>

int main() {
    char str[50];
    memset(str, 'A', 49);
    str[49] = '\0';
    printf("Filled string: %s\n", str);
    return 0;
}

memchr

memchr函数用于在内存块中查找指定字符的第一次出现。

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    char *result = memchr(str, 'W', strlen(str));
    if (result != NULL) {
        printf("Character found: %s\n", result);
    } else {
        printf("Character not found\n");
    }
    return 0;
}

总结

C语言提供了丰富的字符串和内存操作函数,这些函数不仅简化了编程任务,还提高了代码的可读性和效率。通过本文的介绍和示例代码,读者应该能够掌握这些函数的基本用法,并在实际编程中灵活运用。希望本文对您有所帮助,祝您编程愉快!

推荐阅读:
  1. C语言基础字符串函数源代码
  2. php中字符串函数库怎么用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:Android怎么实现注册页面并携带数据包跳转

下一篇:Vue怎么动态修改el-table的某列数据

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》