逗号分隔的字符串转整形数组
时间: 2024-12-10 22:19:26 浏览: 7
在C语言中,逗号分隔的字符串转换成整型数组通常涉及到两个步骤:首先解析字符串,然后分配并初始化数组。这里假设你有一个包含数字的字符串,每个数字之间用逗号分隔。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "1,2,3,4,5"; // 示例字符串
int len;
int* arr;
// 计算字符串长度(不包括结尾的'\0')
len = strlen(str) - 1; // 去掉最后一个逗号
// 分配内存给数组
arr = (int*) malloc(len * sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
// 初始化数组
char* token = strtok(str, ","); // 从第一个字符开始分割
for (int i = 0; i < len; i++) {
arr[i] = atoi(token); // 将每个token转换为int并存入数组
token = strtok(NULL, ","); // 继续分割直到没有更多元素
}
// 打印数组
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 不要忘记释放动态分配的内存
free(arr);
return 0;
}
```
在这个例子中:
- `strlen()` 函数计算字符串长度。
- `malloc()` 分配了足够的空间来存储整数数组。
- `strtok()` 函数用于按逗号分割字符串,`atoi()` 将每个子串转换为整数。
- 最后,记得使用 `free()` 来释放动态分配的内存以避免内存泄漏。
阅读全文