簡體   English   中英

C-計算字符串數組中的字符數

[英]C - Count number of chars in array of strings

我一直在研究一個程序,以完成Project Euler的問題17,我嘗試用C來完成。問題:

如果數字1到5用單詞寫出來:1、2、3、4、5,則總共使用3 + 3 + 5 + 4 + 4 = 19個字母。

如果用文字寫出從1到1000(含1000)之間的所有數字,那么將使用多少個字母?

我編寫了一個函數,該函數將1到1000之間的所有數字以單詞形式放入具有1001個元素的數組中(對於迭代,最后一個為NULL)。 但是當我嘗試計算字符串的每個元素中的字符數時遇到了麻煩,因為我不知道該怎么做。 有人可以給我一點幫助嗎?

您可以這樣做:

int char_count = 0;

char **p = array;

while (*p) {
    char_count += strlen(*p);
    ++p;
}

請注意, strlen()也將計算空格。

如果您不希望計算空格或特殊字符,則可以編寫自己的長度函數,例如:

int string_length (const char *str) {
    int len = 0;

    while(*str) {
        /* Count only lower-case letters a-z. */
        if (*str >= 'a' && *str <= 'z') ++len;
        ++str;
    }

    return len;
}

假設您的數組稱為array ...

int count = 0, i;

for (i = 1; i <= 1000; ++i) {
    count += strlen(array[i]);
}

暫無
暫無

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

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