我一直在一个程序中工作,以完成欧拉项目的问题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/