簡體   English   中英

為什么我的字母計數器在放入 function 時顯示 0

[英]Why does my letter counter display 0 when put in a function

我是 C 的新手,我正在嘗試為字母“a”在字符串中出現的次數創建一個計數器。 我通過將它直接放入 main 使其工作,但是當我將它放入 function 時,我的 printf 輸出 0。

#include <stdio.h>
#include <string.h>
#define STRING_LENGTH 50

void letter_counter(char input[STRING_LENGTH], int count, char letter ) {
    int i;
    for (i = 0; i < strlen(input); i++){
    if (input[i] == letter) {
        count++;
}
}
}


int main() {

    int a1 = 0;
    char a = 'a';

    printf("Please write a word\n");

    char input[STRING_LENGTH] = {0};
    fgets(input,STRING_LENGTH,stdin);
    input[strlen(input) - 1] = 0;

    letter_counter(input, a1, a);
    printf("%i\n", a1);




}

您沒有返回您所計算的價值。 看起來您認為a1將包含總數,但事實並非如此。

您的letter_counter function 需要返回一個int值,而不是void

int letter_counter(char input[STRING_LENGTH], char letter ) {
    int i;
    int count = 0;

    for (i = 0; i < strlen(input); i++){
    if (input[i] == letter) {
        count++;
    }

    return count;
}

然后你需要將 function 的返回值賦給一個變量:

a1 = letter_counter(input, a);

暫無
暫無

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

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