c - 试图制作一个计算字母但不计算空格的循环
问题描述
我正在尝试构建一个简单的程序来计算用户输入中的字母数量。我的想法是使用一个for
循环来循环字符串中的每个字母,增加一个计数器,并在最后返回最终的计数器总数。但是,我不希望程序计算空格 - 我试图使用该isalpha
函数来执行此操作 - 但我似乎格式不正确。此外,我尝试使计数器不增加空格的方式是使用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
实际上是一个函数调用。(它是一个函数调用或类似函数的宏。)函数调用写为name()
、name(argument)
或name(argument,…)
根据它是否传递零个、一个或多个参数。isalpha
接受一个参数。该参数应该是一个unsigned char
值。所以你可以称它为isalpha((unsigned char) s[i])
. 您的if
声明应如下所示:
if (isalpha((unsigned char) s[i]))
您的程序还应该包含#include <ctype.h>
声明isalpha
.
推荐阅读
- r - 将两列从数据帧转换为向量 R
- python - 使用kafka作为框架搜索信息
- linux - 什么是`${CMAKE_PLATFORM_SPECIFIC[@]}`?
- android - 当 onTap 所有图标更改颜色时,如何在单击时仅更改一个?
- java - 使用 Java 在 geckodriver 上禁用 selenium 驱动程序检测
- stripe-payments - Stripe 订阅事件 webhook 不清楚
- python - 为什么我的扫雷方块没有点击右键?
- java - Android:如何将单选按钮的文本设置为整数?
- python - 生成缓冲区半径多边形 - 可能的投影问题
- wcf - WCF Web 服务和 TPL Task.Run