c语言利用数组将字符串分割
时间: 2024-09-06 13:06:51 浏览: 56
总结C#删除字符串数组中空字符串的几种方法
在 C 语言中,可以使用数组配合指针来将一个字符串按照特定分隔符(如空格、逗号等)分割成多个部分。这里通常会涉及到字符串处理的函数,例如 `strtok()` 函数。
以下是一个简单的例子,假设我们有一个包含逗号分隔的字符串:
```c
#include <stdio.h>
#include <string.h>
void split_string(char *str, char delimiter, char *array[], int *count) {
// 初始指针指向原字符串
char *token = strtok(str, delimiter);
int i = 0;
while (token != NULL) {
// 拷贝当前分隔后的部分到数组
array[i] = malloc(strlen(token) + 1); // 分配内存
strcpy(array[i], token); // 复制字符串
array[i][strlen(token)] = '\0'; // 结束符
i++;
token = strtok(NULL, delimiter); // 进行下一次分割
}
*count = i; // 更新数组元素个数
}
int main() {
char str[] = "apple,banana,orange";
char *arrays[10]; // 假设最多10个元素
int count = 0;
split_string(str, ",", arrays, &count);
for (int i = 0; i < count; i++) {
printf("%s\n", arrays[i]); // 打印分割后的结果
free(arrays[i]); // 释放内存
}
return 0;
}
```
在这个例子中,`split_string` 函数会将输入的字符串 `str` 按照指定的分隔符 `delimiter` 分割,并将结果存储在动态分配的字符数组 `array` 中。注意,在使用完后需要手动释放每个元素分配的内存,避免内存泄漏。
阅读全文