题解 | #统计字符#

统计字符

http://www.nowcoder.com/practice/539054b4c33b4776bc350155f7abd8f5

用isalpha isspace isdigit ispunct函数就可,但是为什么我用isspace输出的空格不对???

#include <ctype.h>
#include <string.h>

int main()
{
    char str[1000];
    
    int yingwen = 0;
    int kongge = 0;
    int num = 0;
    int other = 0;
    while(fgets(str,sizeof(str),stdin))
    {
        for(int i = 0;i < strlen(str);i++)
        {
            if(isalpha(str[i]))
                yingwen++;
            //else if(isspace(str[i]))
            else if((str[i]) == ' ')
                kongge++;
            else if(isdigit(str[i]))
                num++;
            else if(ispunct(str[i]))
                other++;                    
        }
        printf("%d\n",yingwen);
        printf("%d\n",kongge);
        printf("%d\n",num);
        printf("%d\n",other);
        memset(str,0,sizeof(str));
    }
    return 0;
}
全部评论
我虽然看不懂你写的 但我看见你没添加标准头文件
点赞 回复 分享
发布于 2022-05-20 15:42
C 库函数 int isspace(int c) 检查所传的字符是否是空白字符。 标准的空白字符包括: ' ' (0x20) space (SPC) 空格符 '\t' (0x09) horizontal tab (TAB) 水平制表符 '\n' (0x0a) newline (LF) 换行符 '\v' (0x0b) vertical tab (VT) 垂直制表符 '\f' (0x0c) feed (FF) 换页符 '\r' (0x0d) carriage return (CR) 回车符 也就是换行符也被算作空格了
点赞 回复 分享
发布于 2022-04-25 16:08

相关推荐

不愿透露姓名的神秘牛友
07-23 14:18
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-25 17:51
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务