C语言自定义字符串分离函数split实现及注意要点
以下是一个用 C 语言实现的字符串分离函数示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> // 字符串分离函数 char split(char *str, char *splitor) { int count = 0; // 记录分离出的字符串数量 char *p = str; char *temp; // 计算分离出的字符串数量 while ((p = strstr(p, splitor))!= NULL) { count++; p += strlen(splitor); } count++; // 加上最后一个字符串 // 分配存放字符串指针的空间 char result = (char )malloc((count + 1) * sizeof(char *)); if (result == NULL) { printf("内存分配失败\n"); return NULL; } p = str; int i = 0; while ((temp = strstr(p, splitor))!= NULL) { int len = temp - p; result[i] = (char *)malloc((len + 1) * sizeof(char)); if (result[i] == NULL) { printf("内存分配失败\n"); return NULL; } strncpy(result[i], p, len); result[i][len] = '\0'; i++; p = temp + strlen(splitor); } // 处理最后一个字符串 int len = strlen(p); result[i] = (char *)malloc((len + 1) * sizeof(char)); if (result[i] == NULL) { printf("内存分配失败\n"); return NULL; } strcpy(result[i], p); result[count] = NULL; // 末尾设置为 NULL 表示结束 return result; } int main() { char str[] = "apple,banana,cherry"; char splitor[] = ","; char splitResult = split(str, splitor); int i = 0; while (splitResult[i]!= NULL) { printf("%s\n", splitResult[i]); free(splitResult[i]); // 释放每个字符串占用的内存 i++; } free(splitResult); // 释放存放字符串指针的内存 return 0; } ``` 额外注意点: 1. 内存分配和释放要小心处理,避免内存泄漏。 2. 处理字符串长度和边界情况要仔细,防止越界访问。 3. 对于输入的字符串和分隔符要进行有效性检查。 ######[AI写代码神器 | 605点数解答 | 2024-12-18 22:50:10]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)378
- C 语言实现链表操作:创建、输出、删除及插入功能详解(字节豆包 | 534点数解答 | 2024-12-09 21:33:48)362
- C语言实现链表创建、输出、删除与插入操作的完整代码及注意要点(字节豆包 | 609点数解答 | 2024-12-18 12:18:21)378
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)446
- 巧用字符添加,计算字符串中“our”最大数量及开发注意要点(DeepSeek | 376点数解答 | 2025-10-30 19:20:06)96
- C 语言实现:处理字符串生成最多 “our” 串,附代码及关键开发注意点 (DeepSeek | 257点数解答 | 2025-10-30 19:20:36)129
- Python 代码转 C++:计算花朵鲜艳值总和(字节豆包 | 408点数解答 | 2026-04-19 21:50:57)19
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)497
- C++ 求解:最少操作次数让字符串不再含 “friend” 子串!(讯飞星火 | 260点数解答 | 2024-08-17 16:30:49)481
- Python 巧解:最少操作次数让字符串告别“friend”子串(字节豆包 | 139点数解答 | 2024-08-18 13:04:14)424
- Android开发自定义 Handler :七大策略有效规避内存泄漏!(百度文心 | 526点数解答 | 2023-11-09 17:34:21)304
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)215