微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

只有 main() 函数在 C 中执行

如何解决只有 main() 函数在 C 中执行

开始学习 C。main 函数执行良好,但程序完成运行而没有执行第二个函数。我觉得我在 main 的 for 循环中犯了一个错误

int check_key_length(int count);

int main(void)
{
    char key[20];
    int count = 0; 

    printf("Enter key: ");
    scanf("%s",key);
 
    for(int i = 0; i < strlen(key); i++) 
    {  
        if (key[i] != ' ')
            count++;  
    }  

    printf("Total number of characters in a string: %d",count); 

}


int check_key_length(int count)
{
    int set_amount = 26;

    if (count < set_amount)
        printf("Error: Your key is too short! Please input 26 chars\n");
    else if (count > set_amount)
        printf("Error: Your key is too long! Please input 26 chars\n");
    else
        string message = get_string("Enter string to encrypt: ");

    return 0;
}

解决方法

您转发声明了您的函数,为其提供了定义,但是您需要在主程序中调用该函数以让您的机器执行它,像这样按预期调用您的函数

#include <stdio.h>
#include <string.h>

int check_key_length(int count);

int main(void)
{
    char key[27];
    int count = 0;
    int strLength;

    do {
        printf("Enter key: ");
        scanf("%s",key);

        strLength = strlen(key);
    } while(check_key_length(strLength) != 0);
    
    
    for(int i = 0; i < strLength; i++) 
    {
        if (key[i] != ' ')
        {
            count++;  
        }
    }

    printf("Total number of characters in a string: %d\n",count);

    return 0;
}

int check_key_length(int count)
{
    int set_amount = 26;

    if (count < set_amount)
    {
        printf("Error: Your key is too short! Please input 26 chars\n");
        return -1;
    }
    else if (count > set_amount)
    {
        printf("Error: Your key is too long! Please input 26 chars\n");
        return -2;
    }
    else
    {
        return 0;
    }
}

注意我必须稍微修改代码才能在没有任何警告或错误的情况下构建它,我可能以您不期望的方式更改了行为,因此请在粘贴之前检查我的代码

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?