C 分解char数组,按照,进行分解,并将其转换为int类型,分别赋值给a,b,c
时间: 2024-03-06 15:46:30 浏览: 17
可以使用字符串处理函数 `strtok` 来实现按照逗号 `,` 进行分解,然后使用 `atoi` 函数将字符串转换为整数,最后将分解出来的整数分别赋值给变量 `a`、`b`、`c`。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char str[] = "1,2,3"; // 假设有3个数字
char *token = strtok(str, ",");
int a = atoi(token);
token = strtok(NULL, ",");
int b = atoi(token);
token = strtok(NULL, ",");
int c = atoi(token);
printf("a = %d, b = %d, c = %d\n", a, b, c);
return 0;
}
```
上述代码中,首先定义了一个字符串 `str`,其中包含了3个数字,并且每个数字之间用逗号 `,` 分隔。然后使用 `strtok` 函数来按照逗号 `,` 分解字符串,每次调用 `strtok` 函数时,第一个参数是待分解的字符串,第二个参数是分隔符,第一次调用时第一个参数为 `str`,后续调用时第一个参数为 `NULL`,表示从上一次分解的位置继续分解。每次分解完成后,`strtok` 函数返回分解出来的字符串,然后使用 `atoi` 函数将字符串转换为整数,并将分解出来的整数依次赋值给变量 `a`、`b`、`c`。
需要注意的是,在内层循环中需要判断分解出来的字符串是否为空,如果为空则表示已经分解到了字符串的末尾,不需要再进行任何操作。另外,由于本例中只有3个数字,因此可以直接使用三个 `strtok` 和三个 `atoi`,当然,如果有更多的数字,就需要考虑使用循环来简化代码。