2013-12-07 41 views
-2

我必須編寫一個程序,計算字符串中使用字母'A'的次數。因此,只要大寫字母A.計算C中的特定字母?

我有了這個迄今:

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int main(int argc, char *argv[]) { 

char s[30]; 
int amount=0; 
printf("Enter a string \n"); 
gets(s); 

//??? 

printf("\nThe letter A has been used %i times\n", amount); 

return 0; 
} 
+0

您是否在構建解決它的邏輯或其語法相關的問題時遇到困難? – Novak

+0

期待高級會員把你的這個問題通過地獄:) 更好地顯示你的嘗試,並在哪裏失敗? –

+0

好的...你還記得剛剛發佈的最後一個問題,我發佈了一個答案嗎?記住'if(s [i] ==''){/ * do stuff * /}'在這裏應用它。 – nhgrif

回答

0

因爲gets自動插入您的終止\0,這很簡單:

char s[30]; 
int amount=0; 
int i = 0; 
printf("Enter a string \n"); 
gets(s); 

for (; s[i] != '\0'; i++) { 
    if (s[i] == 'A' || s[i] == 'a') amount++; 
} 


printf("\nThe letter A has been used %i times\n", amount); 
+0

那麼這是不行的:-( –

+0

@squeamish隨意注意我的代碼有什麼問題,我好像現在正在derping – 2013-12-07 22:15:30

+0

現在看起來好了:-)也許這只是我 –

0

做的一種方式該作業是一個循環,將字符串的每個字符與想要的字符串(本例中爲'A')進行比較,直到找到'\ 0'...替代strchr可用於實現此目的(僅顯示不同的方法)。

int count = 0; 
    char *p=strchr(s,'A'); 
    while (p!=NULL) { 
    count++; 
    p=strchr(p+1,'A'); 
    }