鱼C论坛

 找回密码
 立即注册
查看: 1190|回复: 3

[已解决]只用简单的C语言基础打代码

[复制链接]
发表于 2023-10-28 20:46:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 朕也来学学 于 2023-10-28 20:47 编辑

只用简单的C语言基础打代码,用for语句,while语句,if 语句和简单的输入输出函数实现


输入一串字符,分别统计其中英文字母、空格、数字及其他字符的个数 ,尽可能简略
最后还有这么做的关键步骤的详细思路
最佳答案
2023-10-28 20:46:13
首先,我们需要使用C语言中的输入函数从用户那里获取一串字符。可以使用 scanf 函数来实现这一步骤。

接下来,我们需要定义四个变量来分别统计英文字母、空格、数字和其他字符的个数。我们可以使用 int 类型的变量来进行计数。

然后,我们可以使用 for 循环或 while 循环来遍历输入的字符。在循环中,我们需要使用 if 语句来判断当前字符是英文字母、空格、数字还是其他字符,并根据判断结果来增加相应的计数器。

最后,我们可以使用C语言中的输出函数,如 printf 函数,将统计结果打印出来。

下面是实现这个功能的代码示例:
#include <stdio.h>

int main() {
    char ch;
    int letterCount = 0;
    int spaceCount = 0;
    int digitCount = 0;
    int otherCount = 0;

    printf("请输入一串字符:\n");

    while ((ch = getchar()) != '\n') {
        if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
            letterCount++;
        } else if (ch == ' ') {
            spaceCount++;
        } else if (ch >= '0' && ch <= '9') {
            digitCount++;
        } else {
            otherCount++;
        }
    }

    printf("英文字母个数:%d\n", letterCount);
    printf("空格个数:%d\n", spaceCount);
    printf("数字个数:%d\n", digitCount);
    printf("其他字符个数:%d\n", otherCount);

    return 0;
}

这段代码会提示用户输入一串字符,然后使用 while 循环逐个读取字符,根据字符的类型增加相应的计数器。最后,将统计结果打印出来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-28 20:46:13 | 显示全部楼层    本楼为最佳答案   
首先,我们需要使用C语言中的输入函数从用户那里获取一串字符。可以使用 scanf 函数来实现这一步骤。

接下来,我们需要定义四个变量来分别统计英文字母、空格、数字和其他字符的个数。我们可以使用 int 类型的变量来进行计数。

然后,我们可以使用 for 循环或 while 循环来遍历输入的字符。在循环中,我们需要使用 if 语句来判断当前字符是英文字母、空格、数字还是其他字符,并根据判断结果来增加相应的计数器。

最后,我们可以使用C语言中的输出函数,如 printf 函数,将统计结果打印出来。

下面是实现这个功能的代码示例:
#include <stdio.h>

int main() {
    char ch;
    int letterCount = 0;
    int spaceCount = 0;
    int digitCount = 0;
    int otherCount = 0;

    printf("请输入一串字符:\n");

    while ((ch = getchar()) != '\n') {
        if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
            letterCount++;
        } else if (ch == ' ') {
            spaceCount++;
        } else if (ch >= '0' && ch <= '9') {
            digitCount++;
        } else {
            otherCount++;
        }
    }

    printf("英文字母个数:%d\n", letterCount);
    printf("空格个数:%d\n", spaceCount);
    printf("数字个数:%d\n", digitCount);
    printf("其他字符个数:%d\n", otherCount);

    return 0;
}

这段代码会提示用户输入一串字符,然后使用 while 循环逐个读取字符,根据字符的类型增加相应的计数器。最后,将统计结果打印出来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-28 20:46:51 | 显示全部楼层
这个问题可以通过以下步骤解决:

1. 首先,你需要创建四个变量来分别存储英文字母、空格、数字和其他字符的数量。这些变量应该在开始时都被初始化为0。

2. 然后,你需要使用一个循环来遍历输入的字符串中的每一个字符。在C语言中,你可以使用for循环来实现这一点。

3. 在循环中,你需要使用if语句来检查当前字符的类型。你可以使用C语言的字符函数来实现这一点,例如,isdigit()函数可以检查一个字符是否是数字,isalpha()函数可以检查一个字符是否是字母。

4. 根据字符的类型,你需要更新相应的计数变量。

5. 最后,你需要打印出每种类型的字符的数量。

以下是一个简单的C语言代码示例来实现这个功能:
#include <stdio.h>
#include <ctype.h>

int main() {
    char str[100];
    int letters = 0, spaces = 0, digits = 0, others = 0;

    printf("请输入一串字符:");
    gets(str);

    for(int i = 0; str[ i] != '\\0'; i++) {
        if(isalpha(str[ i]))
            letters++;
        else if(isspace(str[ i]))
            spaces++;
        else if(isdigit(str[ i]))
            digits++;
        else
            others++;
    }

    printf("英文字母的数量:%d\
", letters);
    printf("空格的数量:%d\
", spaces);
    printf("数字的数量:%d\
", digits);
    printf("其他字符的数量:%d\
", others);

    return 0;
}

这个代码首先读取用户输入的字符串,然后使用for循环遍历字符串中的每一个字符。在循环中,它使用if语句和字符函数来检查字符的类型,并更新相应的计数变量。最后,它打印出每种类型的字符的数量。

注意:这个代码使用了gets()函数来读取用户输入的字符串。然而,gets()函数是不安全的,因为它不检查输入的长度,可能会导致缓冲区溢出。在实际的编程中,你应该使用更安全的函数,如fgets()。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-28 21:19:44 | 显示全部楼层
ai的办法太复杂了,我做好了,有需要的可以看看,可能没有55
#include <stdio.h>

int main()
{
        char c;
        int i,letters=0,space=0,dight=0,other=0;
        printf("请输入一行字符:\n");
        while( (c=getchar() )!='\n')
        {
                if(c>='a' && c<='z' || c>='A' && c<='Z')
                letters++;
                else if(c==' ')
                space++;
                else if(c>='0' && c<='9')
                dight++;
                else
                other++;
        }
        printf("字母数:%d \n空格数:%d \n数字数:%d  \n其他字符数:%d\n",letters,space,dight,other);;
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 17:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表