Я пытаюсь взять строку, введенную пользователем, и посмотреть на каждый код, чтобы увидеть, появляется ли она в другой строке строк. Пока работает мой код. Если слово успешно найдено, альфа-представление должно быть добавлено в массив, который в конечном итоге будет напечатан, но только если все коды были найдены.строки для массивов, а затем распечатать в c
У меня возникли проблемы с тем, что хранится в моем массиве, который будет напечатан.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef char *string;
typedef char *alpha;
int main(void)
{
string morse[4]={".-", "-...","----.", ".."};
string alpha[4]={"A", "B", "9", "I"};
char prntArr[50];
char *input;
char *hold;
input = malloc(200);
hold = malloc(50);
int i=0;
int j=0;
int ret;
int x;
int w=0;
int z=0;
printf("please enter a string\n");
scanf("%[^\n]",input);
do{
if (input[i] !=' ')
{
hold[j] = input[i];
j++;
}
else
{
hold[j]='\0';
for (x=0;x<4;x++)
{
printf("value of x %d\n",x);
ret = strcmp(morse[x], hold);
if (ret==0)
{
printf("%s\n",alpha[x]);
prntArr[w]=*hold;
w++;
x=4;
}
else
{
ret=1;
printf("invalid Morse code!");
}
}
j = 0;
}
i++;
}while(input[i] !='\0');
for (z=0;z<50;z++)
{
printf("%c",prntArr[z]);
}
return 0;
free(input);
}
Пожалуйста, добавьте ввод пробы и ожидаемый результат. –