2017-01-17 6 views
-1

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でコードを書いています。

+0

あなた 'SENTENCE'は2D配列 – artm

+1

あるだけで、何を自問を覚えcharとしてSENTENCEを定義したことを覚えている文字を返します。 'SENTENCE [x]'の型で、 'ch'の型は何ですか?あなたはそれをどうやって動かすか知っていますか?実際、警告メッセージはその情報を提供します。 – kaylum

+0

センテンス[X]は100文字の文字列を指します。 –

答えて

1

SENTENCE [x]は文字を返しません、それは[]

あなたは[] []

+0

私はちょうど違いを実現したテストプログラムを書いた。ごめんなさい。 – joseph

+0

心配する必要はありません。 – WhozCraig

関連する問題