gpt4 book ai didi

c++ - 使用 sprintf 和 sscanf 替换给定数字中的所有 0's with 5'

转载 作者:太空狗 更新时间:2023-10-29 20:01:38 25 4
gpt4 key购买 nike

我正在尝试用 5 替换给定整数中存在的所有 0。

为此,我使用 sprintf 将整数转换为字符串并对字符串执行操作,最后将字符串转换回整数

代码如下:

#include<stdio.h>

int main() {

int num=0, i=0;
char str[10];

printf("Enter the number: ");
scanf("%d",&num);

sprintf(str,"%d",num);
printf("string str:%s",str);
while(str[i]!='\0')
{
if(str[i]==0)
str[i]=5;
i++;
}

sscanf(str,"%d",&num);

printf("\nBefore replacement: %s", str);
printf("\nAfter replacement: %d", num);

}

输出错误

有人能找出并纠正这里的错误吗?谢谢:)

最佳答案

scanf("%d", num); 应该是 scanf("%d", &num);

另外,这里是

if (str[i] == 0)
str[i] = 5;

应该是

if (str[i] == '0')
str[i] = '5';

因为0'\0'是一样的,但是你想替换代表0的字符。

此外,在您的输出中,您混淆了之前和之后。

关于c++ - 使用 sprintf 和 sscanf 替换给定数字中的所有 0's with 5',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56390651/

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