c++如何输入一行未知长度的以,为间隔的数据形成动态一维数组
时间: 2023-02-05 18:38:23 浏览: 127
在 C 语言中,可以使用 fgets() 函数来输入一行未知长度的以逗号为间隔的数据,然后使用 strtok() 函数来将数据分割成单个字符串,最后使用 atoi() 函数将字符串转换为整数。下面是一个简单的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE_LENGTH 1024
int main()
{
char line[MAX_LINE_LENGTH];
int* array = NULL;
int array_size = 0;
// 输入数据
printf("输入一行以逗号为间隔的数据:");
fgets(line, MAX_LINE_LENGTH, stdin);
// 分割数据
char* token = strtok(line, ",");
while (token != NULL)
{
// 将字符串转换为整数
int value = atoi(token);
// 扩展数组
array_size++;
array = (int*) realloc(array, array_size * sizeof(int));
// 将数据存入数组
array[array_size - 1] = value;
// 获取下一个字符串
token = strtok(NULL, ",");
}
// 打印数组中的数据
printf("数组中的数据:");
for (int i = 0; i < array_size; i++)
{
printf("%d ", array[i]);
}
printf("\n");
// 释放内存
free(array);
return 0;
}
```
该代码会提示用户输入一行以逗号为间隔的数据,然后使用 strtok() 函数将数据分割成单个字符串,最后使用 atoi() 函数将字符串转换为整数并存储到动态数组中。最后,它
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![ppt](https://img-home.csdnimg.cn/images/20241231044937.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![ppt](https://img-home.csdnimg.cn/images/20241231044937.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)