簡體   English   中英

如何計算字符串中的最大字母數?

[英]How to count the maximal number of letters in a string?

如何計算字符串中(AIEO)字母的數量? 我試圖讓它工作,但無論出於何種原因都沒有。 首先,我嘗試添加更多庫,但仍然無效,然后我嘗試添加更多變量並使用循環,但仍然沒有效果。 我有這段代碼應該這樣做,但它只是在執行后關閉。

#include <stdio.h>
#include <limits.h>
#include <string.h>
#include <conio.h>


int main()
{
    char str[100];
    char pick[4]={'A','E','I','O'};
    int i,j=0,kol,sor;


    printf("Write: ");
    scanf("%s",str);



   kol = INT_MIN; 
   for(i=0;i<strlen(str);i++){
        if(str[i]==' '){
            j++;
           }
   }
   printf ("%d",j);
   int  words[j],max[j],min[j];
   words[0] = 0;
   for(i=0;i<strlen(str);i++){
    if(str[i]!=' '){
            for(int g=0;g<4;g++){
                if(str[i]==pick[g]){
                    words[j]+=1;    
                }
            }
        }else{
                max[j]=i;
                j++;
                min[j]=i+2;
                words[j]=0;
            }
   }
   for(i=0;i<j;i++){
        if(kol<words[i]){
            kol=words[i];
            sor = i;
           }
   }
   for(i=min[sor];i<=max[sor];i++){
        printf("%c",str[i]);
   }


    return 0;
}

也許代碼是錯誤的,也許應該添加更多的東西?

試試下面的代碼:

#include <stdio.h>

int main()
{
    char str[100];
    int a = 0, e = 0, i = 0, o = 0;
    printf("Write: ");
    fgets(str, sizeof(str), stdin);

    for(int c = 0; str[c]!= '\0'; c++)
    {
        switch(str[c])
        {
            case 'A':
            case 'a':
                a+=1;
                break;
            case 'E':
            case 'e':
                e+=1;
                break;
            case 'I':
            case 'i':
                i+=1;
                break;
            case 'O':
            case 'o':
                o+=1;
                break;
        }
    }

    printf("A = %d E = %d I = %d O = %d",a,e,i,o);
    return 0;
}

給定的輸入存儲在“str”中。 For 循環用於從字符串中獲取單個字符。 然后用開關盒檢查並計算物品數量。

注意:如果您只需要計算大寫字符,您可以刪除小寫“a,e,i,o”的 switch case。

暫無
暫無

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

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