[英]Code working on DEvC++ and Ideone but not on competetion website
該代碼可在DEVCPP和IDEONE上使用,但此問題所在的網站不接受此代碼。 這是一個在線競賽,內置的編譯器在說:COMPILATION FAILED。 這是一個在str1中找到str2並返回子字符串索引(如果找到)的程序。 否則打印-1。
我知道不建議使用GOTO。 :(很抱歉。無法找到一種解決方法。
IDEONE鏈接: LINK
代碼是:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char s1[19], s2[19],*p,c,d,k=0;
int i;
gets(s1); gets(s2);
p = strstr(s1,s2);
if( (strlen(s2) > strlen(s1)) || !p )
{printf("-1");goto ex;}
for(i=0;i<strlen(s1); i++)
{
c = s1[i];
d = s1[i+1];
if(c == s2[k] && d == s2[k+1])
{
printf("%d", i);
goto ex;
}
}
ex:
return 0;
}
a.c:15:14: error: comparison between signed and unsigned integer expressions
讓i
簽名。
a.c:19:9: error: array subscript has type 'char'
使k
int。
筆記:
使用fgets
而不是gets
。
在某些情況下, goto
是可以的,例如您可以使用所使用的模式在return
之前執行一些默認操作(例如,日志記錄)。 同樣,為了從內部循環中退出,請使用跳轉表(&&),並進行default:
在完成了其中一種case x:
之后,在case x:
之后重試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.