Moh*_*ief 4 c c++ printf scanf
我试图将给定整数中的所有0替换为5。
为此,我正在使用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);
}
Run Code Online (Sandbox Code Playgroud)
我输出错误
有人可以识别并纠正这里的问题。谢谢 :)
scanf("%d", num);应该是scanf("%d", &num);。
还有这个
if (str[i] == 0)
str[i] = 5;
Run Code Online (Sandbox Code Playgroud)
应该
if (str[i] == '0')
str[i] = '5';
Run Code Online (Sandbox Code Playgroud)
因为0与相同'\0',但是您要替换代表的字符0。
同样,在输出中,您前后混在一起。
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |