分段错误(核心转储)是什么意思?

普罗奈萨克

我尝试在 Visual stdio 中运行此程序并使用WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB作为输入。运行后显示Segmentation fault (core dumped).

如何解决这个问题?

#include <stdio.h>
#include <string.h>
int main()
{
    char string[201];
    int i, j;
    scanf("%s",string);

    for(i=0;i<strlen(string); i++){
        if(string[i]=='W' && string[i+1]=='U' && string[i+2]=='B'){
            for(int k=i; k<i+3; k++){
                string[k]='o';
                i=i+2;
            }
        }
    }
    puts (string);

}

我想知道我的程序有什么问题

皮埃特

string[i+2]当 I 等于 时,您无法访问strlen(string) - 1您可以访问 string[i+1] 这将是终止 nul 字符。

改变你 for 循环的上限。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章