gpt4 book ai didi

c - 构建我自己的 scanf 函数

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

出于学术目的,我必须构建自己的 atoi() 和 scanf() 函数。

第一个很简单,但第二个我遇到了麻烦。

第一个:

int String2Inteiro (char s[])
{
int j;
int i=0;
for(j=0; s[j]!= 0; j++)
{

i=i*10 + s[j] - '0';
}

return i;
}

现在在第二个问题中,我遇到了一些我认为与停止条件有关的问题。我的第一次尝试是试图在 cicle 之后停下来。

char dig;
int cont=0;

do
{
dig=getchar();
array[cont]=dig;
cont++;
} while (dig!= '\n');

第二次尝试是:

int counter=0;
char a;
char array[20];

while (a!='\n')
{
a=getchar();
vec[counter]=a;
counter=counter+1;
}

我不确定输入是否正确表示或者我是否应该使用“\13”(CR 的 ASCII 代码)。

提前致谢

安德烈

最佳答案

您应该在读取停止字符后立即跳出循环,而不是在将其添加到数组之后:

while (counter < sizeof(array)) { // Prevent buffer overflow
a = getchar();
if (a == '\n') {
array[counter] = 0; // Add trailing null to input string
break;
}
array[counter] = a;
counter++;
}

关于c - 构建我自己的 scanf 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25952801/

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