嵌入式大厂面经 字符串常见函数使用C语言实现方式

这是一个嵌入式大厂面试题专栏,每天更新高频面试题。专栏将包含题目描述、详细解析、相关知识点扩展以及实际代码示例。内容涵盖操作系统、驱动开发、通信协议等核心领域,并结合实际项目经验进行分析。每道题目都会附带面试官可能的追问方向,帮助大家更好地准备面试!

在 C 语言中,字符串是字符数组(char 数组)的形式,且以 \0(空字符)结尾。C 标准库提供了一些常用的字符串函数,帮助我们处理字符串的操作。以下是常见的字符串函数及其 C 语言实现方式。

1. strlen:获取字符串的长度

该函数返回字符串的长度(不包括终止的 \0 字符)。

#include <stdio.h>

size_t my_strlen(const char *str) {
    size_t length = 0;
    while (str[length] != '\0') {
        length++;
    }
    return length;
}

int main() {
    const char *str = "Hello, World!";
    printf("Length: %zu\n", my_strlen(str));
    return 0;
}

2. strcmp:比较两个字符串

该函数用于逐个比较两个字符串,直到发现不相等的字符或到达字符串的结尾。它返回:

  • 0:如果两个字符串相等。
  • 负值:如果第一个字符串小于第二个字符串(字典顺序)。
  • 正值:如果第一个字符串大于第二个字符串。
#include <stdio.h>

int my_strcmp(const char *str1, const char *str2) {
    while (*str1 && (*str1 == *str2)) {
        str1++;
        str2++;
    }
    return *(unsigned char *)str1 - *(unsigned char *)str2;
}

int main() {
    const char *str1 = "apple";
    const char *str2 = "banana";
    int result = my_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;
}

3. strcpy:复制字符串

该函数用于将源字符串的内容复制到目标字符串中。

#include <stdio.h>

char *my_strcpy(char *dest, const char *src) {
    char *original_dest = dest;
    while (*src) {
        *dest = *src;
        dest++;
        src++;
    }
    *dest = '\0'; // 确保目标字符串以 \0 结尾
    return original_dest;
}

int main() {
    char dest[

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式面试八股文全集 文章被收录于专栏

这是一个全面的嵌入式面试专栏。主要内容将包括:操作系统(进程管理、内存管理、文件系统等)、嵌入式系统(启动流程、驱动开发、中断管理等)、网络通信(TCP/IP协议栈、Socket编程等)、开发工具(交叉编译、调试工具等)以及实际项目经验分享。专栏将采用理论结合实践的方式,每个知识点都会附带相关的面试真题和答案解析。

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务