Я застрял в проблеме, заданной в книге. Проблема в том, -Почему программа дает неожиданный результат?
Прототипом Интернет новичок является членом имени B1FF, который имеет уникальный способ wriring типичный B1FF коммюнике messages.Here в .:
h3y DUD3, C 15 R1LLY C00L
Write а «B1FF фильтр», который читает сообщение, введенное пользователем и переводит его в B1FF-говорить:
Введите сообщение: Эй чувак, с Rilly круто
В B1FF-говорят: h3y DUD3, C 15 R1LLY C00L
Ваша программа должна конвертировать мессу 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;
}
Я не понимаю, почему программа не преобразования алфавитов и почему scanf()
не Принимая space
в качестве персонажа?
Прогулка через него с помощью отладчика. Обратите внимание на значение i - особенно на линии, где вы вычитаете один из них, а затем используйте его как индекс массива! –
Почему вы используете 'scanf' для чтения одиночных символов? Знаешь, он может читать целую цепочку, верно? Также прочитайте 'man scanf', чтобы понять, что он делает с пробелами. –
Правильно отложите свой код, чтобы вы могли видеть логические ошибки в ваших if-statement. –