gpt4 book ai didi

C - 修改函数参数

转载 作者:行者123 更新时间:2023-11-30 18:56:44 24 4
gpt4 key购买 nike

我正在尝试模拟通过引用传递,显然我做错了什么:

long int toNumber(char * input) {
char* pointer;
long int number;
number = strtol(input, &pointer, 10);
if (number == 0L) {
return -1337;
} else {
input = pointer;
return number;
}
}

我希望这个函数返回输入的值并修剪转换后的开头,但是当我尝试调用它时,即使整数转换是完美的,字符串仍然保持不变。感谢您提供任何帮助。

编辑:

    char* input = "123 456"; 
long int number = toNumber(input);

编辑2:抱歉,改回来了。我希望它能像这样工作:输入 = 123 456 -> 数字 = 123,输入 = 456 -> 数字 = 456,输入 = NULL

最佳答案

目前尚不清楚 1337 的事情...但是,此代码应该通过简化的逻辑生成问题代码尝试的内容。

long int toNumber(char **input) 
{
char *pointer;
long int number;

number = strtol(input, &pointer, 10);
if(number)
*input = pointer;
else
number = (1337);

return number;
}

像下面这样调用上面的函数:

   {
char *test="123 456";
long int n;

...

n = toNumber(&test);

printf("n[%ld] remainder[%s]\n", n, test);
...

}

应该打印:

n[123] remainder[ 456]

关于C - 修改函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23528068/

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