gpt4 book ai didi

c - 替换字符串中的元素问题

转载 作者:行者123 更新时间:2023-11-30 17:29:01 24 4
gpt4 key购买 nike

这是我的代码

 int i;
char new[SIZE_OF_ARRAY];
printf("Which line would you like to replace?\n");
scanf("%d", &i);

if(i >= row)
{
printf("ROW SIZE CROSSED....RETURNNG BACK TO MAIN MENU");
return;
}
else
{
printf("What would you like to be replace?\n");
scanf("%[^\n]", new);

strcpy(array[i],new);
}

return;

但是当我运行它时,scanf 不起作用。它只是跳过任务...代码有什么问题?

最佳答案

很可能是因为 scanf("%d", &i); 之后输入缓冲区中有一个换行符,所以当您尝试使用 scanf("获取某些内容时%[^\n]", new); 由于换行符,什么也没有读到。

要验证它,请打印第二个 scanf 的返回值来查看。

解决方案:只需使用 fgets 来完成第二个 scanf 的工作,或者在第二个 scanf 之前消耗换行符,例如将第一个 scanf 更改为 scanf("%d\n", &i);

关于c - 替换字符串中的元素问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25836657/

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