2017-06-20 18 views
0

母音チェック機能を作っています。私は言語にいくぶん新しいです。文字列リテラルと文字配列を比較することはできません。これは本当ですか?私のプログラムはいつもクラッシュし、私は問題が何かを見ることができません。誰かが私のコードに問題がある理由を私に説明することはできますか?どんな種類の入力ありがとうございます。(C言語)String内の母音を確認する

void checkVowel(char someString[]){ 

    int i, len; 
    char compare; 

    len = strlen(someString); 
    printf("%d\n", len); 

    printf("you name in all uppercase: "); 
    printf(strupr(someString)); 


    for(i=0; i<len;i++){ 

     char compare = someString[i]; 



     if(compare == "A" || (strcmp(compare,"E"==0))|| compare == "I" || compare == "O" || compare == "U"){ 
      printf("\n%c", compare); 
     } 

    } 
} 
+1

'比較== "A"' - > '比較==「A''と'のstrcmp(、比較 "E" == 0) ' - >' ==比較'E''は' char'ではなく 'char'です。 – BLUEPIXY

+1

なぜあなたは残りのEと違うチャーEを扱っていますか? – jacoblaw

+0

あなたのすべての入力をありがとう、私は@ ScottKさんが言っていることである答えを見つけました。ヒントもありがとう –

答えて

0

あなたが失敗すること、C文字列に文字を比較するためのstrcmpを使用しています。これをしようとしたときにコンパイラの警告が表示されているはずです。文字と1文字の文字列を比較する代わりに、単に1文字ずつ比較するだけです。 strcmpをまったく使用する必要はありません。

struprを使用すると、Microsoftが提供する非標準deprecated関数であることに注意してください。代わりにtoupperに使用します。

#include <ctype.h> // defines toupper and tolower 
void checkVowel(char someString[]){ 
    int i, len; 

    len = strlen(someString); 
    printf("%d\n", len); 

    printf("you name in all uppercase: "); 
    printf(strupr(someString)); 

    for(i=0; i<len;i++) { 
     char compare = toupper(someString[i])); 
     if ((compare == 'A') || 
      (compare == 'E') || 
      (compare == 'I') || 
      (compare == 'O') || 
      (compare == 'U')) { 
      printf("\n%c", compare); 
     } 
    } 
} 
0

あなたが以下で試すことができ、私は、コードを実行されませんでしたが、私はそれが仕事と願っています:

void checkVowel(char someString[]){ 

int i, len; 
char compare; 

len = strlen(someString); 
printf("%d\n", len); 

printf("you name in all uppercase: "); 
printf(strupr(someString)); 


    for(i=0; i<len;i++){ 

    char vowelArray[5] = [ 'A','E','I','O','U']; 
    char compare = someString[i]; 
    int j; 
    for (j = 0 ; j < 5; j++){ 

     if(compare == vowelArray[j]){ 

     printf("\n%c", compare); 

     } 
    }  

    } 
} 
関連する問題