1つの.txtファイルからモールスコードで読み込まれるコードをchar配列に書き込もうとしています。次に、テストファイルを別のchar配列に読み込みます。そこからテストファイルをモールスコードに読み込んでモニタに出力します。どのようにして、あるchar配列のcharをcのループ内の別のchar配列に割り当てるのですか?
私の入力ファイルは、次のとおりです。私は、正確なモールス信号の等価を印刷しようとしている上に、forループで
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i=0,j=0, n=0,x=0, SIZE=100;
char SENTENCE[100][100];
char morse[100][100];
char fileName[SIZE];
char SecondFile[SIZE];
printf("Enter a file name\n");
scanf("%s", fileName);
FILE *file; /* FILE pointer */
file = fopen(fileName, "r"); /* open a text file for reading */
while(fgets(morse[n++],20,file))
{
}
for (i=0 ; i<n; i++)
{
printf("\n%s", morse[i]);
}
printf("\n\nEnter a file name\n");
scanf("%s", SecondFile);
FILE *start; /* FILE pointer */
start = fopen(SecondFile, "r"); /* open a text file for reading */
while(fgets(SENTENCE[j++],30,start))
{
}
for (i=0 ; i<j; i++)
{
printf("\n%s", SENTENCE[i]);
}
for (x=0; x<=SIZE; x++)
{
if(SENTENCE[x]=='A'||SENTENCE[x]=='a')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='B'||SENTENCE[x]=='b')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='C'||SENTENCE[x]=='c')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='D'||SENTENCE[x]=='d')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='E'||SENTENCE[x]=='e')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='F'||SENTENCE[x]=='f')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='G'||SENTENCE[x]=='g')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='H'||SENTENCE[x]=='h')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='I'||SENTENCE[x]=='i')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='J'||SENTENCE[x]=='j')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='K'||SENTENCE[x]=='k')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='L'||SENTENCE[x]=='l')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='M'||SENTENCE[x]=='m')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='N'||SENTENCE[x]=='n')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='O'||SENTENCE[x]=='o')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='P'||SENTENCE[x]=='p')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='Q'||SENTENCE[x]=='q')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='R'||SENTENCE[x]=='r')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='S'||SENTENCE[x]=='s')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='T'||SENTENCE[x]=='t')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='U'||SENTENCE[x]=='u')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='V'||SENTENCE[x]=='v')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='W'||SENTENCE[x]=='w')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='X'||SENTENCE[x]=='x')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='Y'||SENTENCE[x]=='y')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='Z'||SENTENCE[x]=='z')
printf("\n%s", morse[x]);
else if(SENTENCE[x]=='\0')
printf("nothing read");
else if(SENTENCE[x]=='.')
printf("nothing read");
else
printf("error reading in a character from the file");
}
fclose(file);
fclose(start);
getch();
}
を次のように
A.- B-... C-.- D-.. E. F.._. G--. H.... I.. J.--- K-.- L.-.. M-- N-. O--- P.--.
Q--.- R.-. S... T- U..- V...- W.-- X-..- Y-.-- Z--..
ABCDEFGHIJKLMNOPQRSTUVWXYZ
マイ.Cコードがあります。唯一の問題は、アレイSENTENCE[x]
とch
を比較しようとすると警告が表示され続けることです。とにかく、あるchar配列の特定の文字をcの別のchar配列に代入する方法もあります。私がこれを行う方法はありますか?私は現在、cでコードを書いています。
あなた 'SENTENCE'は2D配列 – artm
あるだけで、何を自問を覚えcharとしてSENTENCEを定義したことを覚えている文字を返します。 'SENTENCE [x]'の型で、 'ch'の型は何ですか?あなたはそれをどうやって動かすか知っていますか?実際、警告メッセージはその情報を提供します。 – kaylum
センテンス[X]は100文字の文字列を指します。 –