在OJ出现运行时错误,
这样代码正常
char s[256];
int i=0;
fgets(s,255,stdin);
i = strlen(s)-1;
//todo something
这样出现这个Runtime Error
int i=0;
char s[256];
while((ch=getchar())!='\n'){
s[i]=ch;
i++;
}
i = strlen(s)-1;
//todo something
请问是什么问题
看看输入的内容是否超长了
【以下回答由 GPT 生成】
运行时错误(Runtime Error)通常是由以下几种可能的原因导致的:
根据给出的代码,存在一些潜在的问题,可能导致运行时错误。下面是可能的解决方案:
char s[256];
int i = 0;
fgets(s, 255, stdin);
i = strlen(s)-1;
//todo something
fgets(s, sizeof(s), stdin);
int i = 0;
char s[256];
while((ch = getchar())!='\n'){
s[i] = ch;
i++;
}
i = strlen(s)-1;
//todo something
int i = 0;
char s[256];
char ch;
while((ch = getchar())!='\n'){
s[i] = ch;
i++;
}
i = strlen(s)-1;
//todo something
int i = 0;
char s[256];
char ch;
while((ch = getchar())!='\n'){
s[i] = ch;
i++;
}
s[i] = '\0';
i = strlen(s)-1;
//todo something
根据上述问题分析和解决方案,可能导致运行时错误的问题可能是在使用fgets函数时未正确指定读取的字符串长度,或者在使用getchar函数时未定义变量ch并未在循环结束后添加字符串终止符'\0'。通过修复这些问题,你的代码应该能够正常运行。
【相关推荐】