嵌入式大厂面经 字符串常见函数使用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编程等)、开发工具(交叉编译、调试工具等)以及实际项目经验分享。专栏将采用理论结合实践的方式,每个知识点都会附带相关的面试真题和答案解析。