gpt4 book ai didi

C 使用 Strtol 将字符串解析为两个整数

转载 作者:行者123 更新时间:2023-11-30 15:12:35 25 4
gpt4 key购买 nike

假设我有一个程序可以计算字符串中两个整数相乘的结果。我使用 strtol 来分隔第一部分,但如何分隔第二个 int ?例如,“12 5”将给出结果 60。

现在我的代码如下所示:

    int multiply(const char *input) {
int result = 0;
char *second_int;
int i = strtol(input_line, &second_int, 10);

result = i * second_int;

return result;

很明显,现在这会产生错误,因为我只将字符串的第一部分转换为整数。如何将剩余的字符串转换为整数?我需要另一条 strtol 线吗?我需要转换它吗?我不确定如何解决这个问题。

最佳答案

strtol声明如下:

long int strtol(const char *nptr, char **endptr, int base);

来自 man strtol:

If endptr is not NULL, strtol() stores the address of the first invalid character in *endptr.

因此您可以使用 *endptr 中存储的值开始扫描另一个值。示例:

char *str="12 5";
char *end;
printf("%ld\n", strtol(str, &end, 10));
printf("%ld\n", strtol(end, &end, 10));

将打印:

12
5

关于C 使用 Strtol 将字符串解析为两个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34978856/

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