试图制作一个计算字母但不计算空格的循环
Trying to make a loop which counts letters but not spaces
我正在尝试构建一个简单的程序来计算用户输入中的字母数。我的想法是使用 for
循环,它会循环字符串中的每个字母,增加一个计数器,最后 return 最终计数器总数。但是,我不希望程序计算 spaces - 我试图使用 isalpha
函数来执行此操作 - 但我似乎格式化不正确。此外,我试图使 space 的计数器不递增的方法是使用 c = c
,但是,这似乎也是不正确的。这是我到目前为止编写的代码:
int c = 0;
int main(void)
{
string s = get_string("Input: ");
printf("Output: ");
for (int i = 0; i < strlen(s); i++)
{
if( s[i] (isalpha))
{
c++;
}
else
{
c = c;
}
}
printf("%i\n", c);
}
isalpha
实际上是一个函数调用。 (它是一个函数调用或一个 function-like 宏。)一个函数调用被写成 name()
、name(argument)
或 name(argument,…)
,这取决于它传递的是零、一、或更多论据。 isalpha
接受一个参数。该参数应该是一个 unsigned char
值。所以你可以称它为isalpha((unsigned char) s[i])
。您的 if
语句应如下所示:
if (isalpha((unsigned char) s[i]))
您的程序还应包含 #include <ctype.h>
以包括声明 isalpha
的 header。
这条记录
s[i] (isalpha)
不正确,没有意义。
您需要的是以下内容
size_t c = 0;
for ( size_t i = 0; s[i] != '[=11=]'; i++ )
{
if( isalpha( ( unsigned char )s[i] ) ) ++c;
}
printf("c = %zu\n", c );
注意函数isalpha
声明在header<ctype.h>
中,你必须包含
我正在尝试构建一个简单的程序来计算用户输入中的字母数。我的想法是使用 for
循环,它会循环字符串中的每个字母,增加一个计数器,最后 return 最终计数器总数。但是,我不希望程序计算 spaces - 我试图使用 isalpha
函数来执行此操作 - 但我似乎格式化不正确。此外,我试图使 space 的计数器不递增的方法是使用 c = c
,但是,这似乎也是不正确的。这是我到目前为止编写的代码:
int c = 0;
int main(void)
{
string s = get_string("Input: ");
printf("Output: ");
for (int i = 0; i < strlen(s); i++)
{
if( s[i] (isalpha))
{
c++;
}
else
{
c = c;
}
}
printf("%i\n", c);
}
isalpha
实际上是一个函数调用。 (它是一个函数调用或一个 function-like 宏。)一个函数调用被写成 name()
、name(argument)
或 name(argument,…)
,这取决于它传递的是零、一、或更多论据。 isalpha
接受一个参数。该参数应该是一个 unsigned char
值。所以你可以称它为isalpha((unsigned char) s[i])
。您的 if
语句应如下所示:
if (isalpha((unsigned char) s[i]))
您的程序还应包含 #include <ctype.h>
以包括声明 isalpha
的 header。
这条记录
s[i] (isalpha)
不正确,没有意义。
您需要的是以下内容
size_t c = 0;
for ( size_t i = 0; s[i] != '[=11=]'; i++ )
{
if( isalpha( ( unsigned char )s[i] ) ) ++c;
}
printf("c = %zu\n", c );
注意函数isalpha
声明在header<ctype.h>
中,你必须包含