gpt4 book ai didi

c - 给定一个字符数组,我如何从这个数组中取出多个数字并将其分配给一个 int 值?

转载 作者:太空宇宙 更新时间:2023-11-04 04:44:05 25 4
gpt4 key购买 nike

假设我有一个这样的字符数组

char *array = "hello my name is steven 123*3";

我想从此表达式中提取 123 并将其放入 int 中。

我知道我可以做类似的事情

int firstnum = array[15] - '0';

(假设 1 是数组中的第 15 个字符),这将给我 firstnum = 1

但我希望能够将整个 123 数字变成一个整数,但我不太确定该怎么做。

感谢任何帮助

编辑:我刚刚发现了一个叫做 strtol 的东西,但不确定如何使用它。

我在想long numberwanted = strtol(array[15], *p, 10);但是我怎么让它知道什么时候停止呢?还是一旦到达非整数或非长整数就停止?什么是 *p?

最佳答案

尝试使用 sscanf

  int n1 = 0, n2 = 0;
char ch = 0;
char *array = "hello my name is steven 123*3";
sscanf(array, "%*[^0-9] %d %c %d", &n1, &ch, &n2);

这假定前缀字符串永远不会包含数字。如果它可以包含一个数字,您可以像这样从后面读取它(假设数据包括:前缀字符串、一个或多个数字、一个字符、一个或多个数字。

  int n1 = 0, n2 = 0;
char ch = 0;

char *array = "hello my name is steven 123*3";
size_t i = strlen(array);

while (--i >= 0 && isdigit(array[i]))
;
sscanf(array+i+1, "%d", &n2);

ch = array[i];

while (--i >= 0 && isdigit(array[i]))
;
sscanf(array+i+1, "%d", &n1);

关于c - 给定一个字符数组,我如何从这个数组中取出多个数字并将其分配给一个 int 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com