我一直在一个程序中工作,以完成欧拉项目的问题17,我试图在C。
问题:
如果数字1到5是用单词写出来的:1,2,3,4,5,那么总共有3+3+5+4+4=19个字母。
如果所有从1到1000(一千)的数字都是用文字写出来的,会用多少个字母?
我编写了一个函数,将1到1000之间的所有数字放在一个包含1001个元素的数组中(最后一个是空的,用于迭代)。
但是当我试图计算字符串中每个元素中的字符数时,我遇到了麻烦,因为我不知道怎么做。有人能帮我一点忙吗?

最佳答案

你可以这样做:

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

关于c - C-计数字符串数组中的字符数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35247840/

10-12 00:07
查看更多