牛客网:段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起
在牛客网刷题,发现即使通过了自测输入,但仍然不能通过,总是出现“段错误:您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起”的报错。
题目:写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写。我一开始写的代码如下:
#include
#include
int main()
{char str1[50];char letter;int count = 0;int len = 0;gets(str1);scanf("%c", &letter);len = strlen(str1);for(int i=0;i<len;i++){if (tolower(str1[i]) == tolower(letter))count++;}printf("%d", count);return 0;
}
经过反复的报错,我最终找到了错误原因:数组长度问题。当我把"char str1[50]" 改成 “char str1[500]” 后,才最终通过了。如此说来,报错原因就是数组越界了,但事实上也没有越界呀,可能这只是出题人的要求吧!难搞哦
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
