我尝试在 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] 删除。
我来说两句