我一直在研究CS50中的可读性问题。第一步是创建一种仅计算字母字符的方法。它建议使用isalpha
函数,但实际上并未包括如何实现的说明。
下面是我的代码,该代码成功计算了全部字母字符,但未能过滤出标点符号,空格和整数。
有人能指出我一个更好的方向来实施isalpha
使其起作用吗?
#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <ctype.h>
int main(void)
{
string s = get_string ("Text: \n"); // Ask for text
// Loop through the string one character at a time. Count strlen in variable n.
for (int i = 0, n = strlen(s); i < 1; i++)
// Count only the alphabetical chars.
{
while (isalpha (n)) i++;
printf ("%i", n );
}
printf("\n");
}
答案 0 :(得分:1)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main(void)
{
const char* s = get_string ("Text: \n");
int count = 0;
while(*s) count += !!isalpha(*s++);
printf ("%d\n", count );
return 0;
}