计算c中的单个字符
counting individual characters in c
我正在做一个名为可读性的项目。用户输入文本,然后代码应使用 coleman-liau 函数来确定阅读级别。但是为了使用这个函数,你必须确定单词、字母和句子的数量。现在我正忙着数字母。所以我想问一下如何计算c中的单个字符。现在这是我的代码:
int count_letters (string text)
{
int count_letters = 0;
int numb = 0;
for (int i = 0, n = strlen(text); i < n; i++)
{
if (text[i] != '')
{
count_letters++;
}
}
return count_letters;
}
您可以使用 isalpha()
或“即兴创作”。
这将适用于 ASCII 字符集:
#include <stdio.h>
int count_letters(const char *str)
{
int count = 0, i = 0;
for (; str[i] != '[=10=]'; i++)
{
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'))
{
/* any character within this range is either a lower or upper case letter */
count++;
}
}
return count;
}
int main(void)
{
char *str = "Hello\n world hello123@";
printf("%d\n", count_letters(str));
return 0;
}
或使用isalpha()
,也支持您当前的语言环境。
#include <ctype.h>
int count_letters(const char *str)
{
int count = 0, i = 0;
for (; str[i] != '[=11=]'; i++)
{
if (isalpha((unsigned char)str[i]))
{
count++;
}
}
return count;
}
编辑:正如Andrew提到的,为了迂腐,你最好将unsigned char
作为参数传递给isalpha()
以避免任何由于签名类型而可能出现的未定义行为str
.
我正在做一个名为可读性的项目。用户输入文本,然后代码应使用 coleman-liau 函数来确定阅读级别。但是为了使用这个函数,你必须确定单词、字母和句子的数量。现在我正忙着数字母。所以我想问一下如何计算c中的单个字符。现在这是我的代码:
int count_letters (string text)
{
int count_letters = 0;
int numb = 0;
for (int i = 0, n = strlen(text); i < n; i++)
{
if (text[i] != '')
{
count_letters++;
}
}
return count_letters;
}
您可以使用 isalpha()
或“即兴创作”。
这将适用于 ASCII 字符集:
#include <stdio.h>
int count_letters(const char *str)
{
int count = 0, i = 0;
for (; str[i] != '[=10=]'; i++)
{
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'))
{
/* any character within this range is either a lower or upper case letter */
count++;
}
}
return count;
}
int main(void)
{
char *str = "Hello\n world hello123@";
printf("%d\n", count_letters(str));
return 0;
}
或使用isalpha()
,也支持您当前的语言环境。
#include <ctype.h>
int count_letters(const char *str)
{
int count = 0, i = 0;
for (; str[i] != '[=11=]'; i++)
{
if (isalpha((unsigned char)str[i]))
{
count++;
}
}
return count;
}
编辑:正如Andrew提到的,为了迂腐,你最好将unsigned char
作为参数传递给isalpha()
以避免任何由于签名类型而可能出现的未定义行为str
.