c语言代码分割字符串,以:为分隔符,分割后的元素存储到列表中去
时间: 2024-04-16 14:26:45 浏览: 204
在C语言中,可以使用字符串处理函数和动态内存分配来实现将分割后的元素存储到列表(数组)中。以下是一个示例代码,使用冒号(:)作为分隔符,并将分割后的元素存储到字符串数组中:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[] = "Hello:world:how:are:you";
char *token;
char *list[10]; // 假设最多有10个子字符串
int count = 0;
// 使用 strtok 函数分割字符串
token = strtok(str, ":");
// 循环遍历并存储分割后的子字符串到列表中
while (token != NULL) {
list[count] = malloc(strlen(token) + 1); // 分配内存保存子字符串
strcpy(list[count], token);
count++;
token = strtok(NULL, ":");
}
// 打印列表中的元素
for (int i = 0; i < count; i++) {
printf("%s\n", list[i]);
free(list[i]); // 释放动态分配的内存
}
return 0;
}
```
上述代码中,我们定义了一个字符串数组`list`来存储分割后的子字符串。在循环中,使用`strtok`函数将字符串分割为子字符串,并将每个子字符串动态分配内存后存储到列表中。最后,使用循环打印列表中的元素,并释放动态分配的内存。
上述示例代码的输出将是:
```
Hello
world
how
are
you
```
请注意,在使用动态内存分配时,确保在不需要使用时释放相应的内存,以避免内存泄漏。
阅读全文