C程序中的运行时错误。“”Windows正在尝试找到解决方案“”

C程序中的运行时错误。“”Windows正在尝试找到解决方案“”,c,C,我想和大家分享一个我已经面对过很多次的问题 请参阅我编写的代码: int main(){ /*main method*/ char original[10]; char c; int i; for(i=0; (c=getchar())!=EOF;i++){ original[i]=c; } printf(totalElements(original)); } int totalElements

我想和大家分享一个我已经面对过很多次的问题

请参阅我编写的代码:

int main(){
    /*main method*/
    char original[10];
    char c;
    int i;

    for(i=0; (c=getchar())!=EOF;i++){           
        original[i]=c;
    }
    printf(totalElements(original));



}

int totalElements(char a[]){
    char c;
    int i=0;

    while((c=a[i])!='\0'){
        i++;
    }
    return i;
}
这是一个确定输入中字符总数的代码。例如:输入“CAT”有3个字符,因此它将打印3个字符

但是,当我运行此代码时,几秒钟后会出现一个提示,提示它已停止工作,windows正在尝试找到解决方案

有人能告诉我是什么问题吗

不仅这一次,而且我已经多次面对这个问题


谢谢您的帮助。

您没有在字符串末尾添加字符串终止符字符

int main(){
    /*main method*/
    char original[10];
    int c;
    int i;

    for(i=0;i < 9 && (c=getchar())!=EOF;i++){           
        original[i]=c;
    }
    original[i] = '\0';
    printf("%d\n", totalElements(original));

    return 0;

}

int totalElements(char a[]){
    char c;
    int i=0;

    while((c=a[i])!='\0'){
        i++;
    }
    return i;
}

您的printf也不正确。

Windows错误对话框(如Windows在停止程序后试图找到解决方案)表明正在运行的应用程序中存在导致其异常终止的缺陷

如果您多次遇到这种情况,那是因为您正在编写或使用的程序中存在缺陷,这些缺陷在运行时会导致错误

此错误消息用于通知应用程序用户应用程序已异常终止,并且Windows正在检查Microsoft异常终止数据库,以查看是否记录了此问题。由于这些是您自己编写的应用程序,而不是Microsoft或其他供应商的应用程序,因此Windows找到解决方案的机会相当渺茫


本文提供了禁用此消息的过程。基本步骤是转到“更改操作中心设置”并更改问题报告设置的设置。

在printftotalElementsoriginal;之前添加原始[i]='\0';。此外,您还可以在循环中原始[i]=c之后添加if i==8{i++;break;};为了防止缓冲区溢出,totalElements返回int,那么您希望printftotalElementsoriginal如何;do?和charc;应为int c@于浩,不应打印总版次原件;打印值?@Siddhant不应打印TotalElementsOriginal;打印值?-不需要。printf需要字符串literalconst char*或。。。作为其第一个参数,不是int。正确的方法是使用printf%d,totalElementSorInitial;。哦,我忘了加上那个。。。thnx@Viktor Simkó你的回答是不完整的。如果我输入20个chacacter会怎么样?@DavidHaim,这只是一个测试程序。。。不是原创的。。。我完全同意你的说法。。。我只是一个九年级的学生。。我制作测试程序来检查我的技能。。。。当我要写一个完整的工作代码时,我一定会记住这些事情