簡體   English   中英

(C語言)檢查字符串中的元音

[英](C language) Checking vowels in a 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);
        }

    }
}

您可以在下面嘗試,我沒有運行代碼,但我希望它可以工作:

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);

      }
    }       

  }
}

您正在使用strcmp將字符與C字符串進行比較,這將失敗。 嘗試執行此操作時,您應該已經看到編譯器警告。 無需比較字符和單字符字符串,只需一次比較一個字符。 完全不需要使用strcmp。

請注意,使用strupr是Microsoft提供的非標准棄用功能。 使用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);
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM