我被困在一本书中给出的问题。问题是 -为什么程序给出了意想不到的输出?
原型的网络新手是老乡的名字B1FF,谁拥有wriring messages.Here的典型B1FF公报:
H3Y DUD3,C 15 R1LLY C00L
写的独特方式一个“B1FF滤波器”,其读取由用户输入的消息,并将其转换成B1FF发言:
输入消息:嘿哥们,C是rilly凉爽
在B1FF发言:H3Y DUD3,C 15 R1LLY C00L
你的程序应该转换messa ge替换为大写字母,替换某些字母的数字(A = 4,B = 8,E = 3,I = 1,O = 0,S = 5)。
我的计划 -
#include<stdio.h>
int main()
{
char arr[50]={0},ch[50]={0};
int i=0;
printf("\nenter the sentence : ");
while(arr[i-1]!='\n')
{
scanf("%c",&arr[i]);
i++;
}
i=0;
while(arr[i]!='\n')
{
if(arr[i]=='e')
ch[i]='3';
if(arr[i]==('A'||'a'))
ch[i]='4';
if(arr[i]==('B'||'b'))
ch[i]='8';
if(arr[i]==('I'||'i'))
ch[i]='1';
if(arr[i]==('o'||'O'))
ch[i]='0';
if(arr[i]==('S'||'s'))
ch[i]='5';
else ch[i]=arr[i]-32;
i++;
}
ch[i]='\n';
i=0;
printf("\nIn B1FF-SPEAK : ");
while(ch[i]!='\n')
{
printf("%c",ch[i]);
i++;
}
printf("\n");
return 0;
}
OUTPUT我不明白为什么程序未进行转换的字母和为什么scanf()
不是接受space
作为角色?
大道直通其与调试。注意我的值 - 特别是在你从中减去一个值的行上,然后用它作为数组索引! –
你为什么使用'scanf'来读取单个字符?你知道,它可以读取整个字符串,对吗?还请阅读'man scanf'以了解它在空间上做了什么。 –
正确缩进您的代码,以便您可以在if语句中看到逻辑错误。 –