C语言求解

qq_36973349 2016-12-08 05:35:45
判断字符串中是否有“GLB",若有,输出”YES“;没有,输出”NO";我写的代码如下,但是有的测试不能通过,代码不是很麻烦,希望各位帮我看看指点下谢谢。
#include <stdio.h>
02.#include <stdlib.h>
03.#include <string.h>
04.#define N 100
05.int main()
06.{
07. int T,k;
08. char s[N+5];
09. scanf("%d",&T);
10. while (T--)
11. {
12. scanf("%s",s);
13. for(k=0; k<strlen(s)-2; k++)
14. {
15. if(s[k]=='G'&&s[k+1]=='L'&&s[k+2]=='B')
16. {
17. printf("YES\n");
18. break;
19. }
20. }
21. if(k==strlen(s)-2)
22. printf("NO\n");
23. }
24. return 0;
25.}
...全文
331 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻夢之葉 2016-12-13
  • 打赏
  • 举报
回复
for(k=0; k<strlen(s)-3; k++)
sflotus 2016-12-12
  • 打赏
  • 举报
回复
无法通过的字符串有吗
ck2333 2016-12-09
  • 打赏
  • 举报
回复
引用 2 楼 qq_36973349的回复:
但是参考答案也是输一个字符串就判断有没有,下面是正确的代码 #include <stdio.h> 02.#include <stdlib.h> 03.#include <string.h> 04.#define N 100 05.int main() 06.{ 07. int T; 08. char s[N+5]; 09. scanf("%d",&T); 10. while (T--) 11. { 12. int k,m=0; 13. scanf("%s",s); 14. int len=strlen(s); 15. for(k=0; k<len-2; k++) 16. { 17. if(s[k]=='G'&&s[k+1]=='L'&&s[k+2]=='B') 18. { 19. m=1; 20. break; 21. } 22. } 23. if(m) 24. printf("YES\n"); 25. else 26. printf("NO\n"); 27. } 28. return 0; 29.}
没必要纠结这些东西。。有些题目的答案还是错的呢!自己把东西弄懂就可以了。。
ooolinux 2016-12-08
  • 打赏
  • 举报
回复
会写了以后,用strstr函数比较简单。
qq_36973349 2016-12-08
  • 打赏
  • 举报
回复
但是参考答案也是输一个字符串就判断有没有,下面是正确的代码 #include <stdio.h> 02.#include <stdlib.h> 03.#include <string.h> 04.#define N 100 05.int main() 06.{ 07. int T; 08. char s[N+5]; 09. scanf("%d",&T); 10. while (T--) 11. { 12. int k,m=0; 13. scanf("%s",s); 14. int len=strlen(s); 15. for(k=0; k<len-2; k++) 16. { 17. if(s[k]=='G'&&s[k+1]=='L'&&s[k+2]=='B') 18. { 19. m=1; 20. break; 21. } 22. } 23. if(m) 24. printf("YES\n"); 25. else 26. printf("NO\n"); 27. } 28. return 0; 29.}
ck2333 2016-12-08
  • 打赏
  • 举报
回复
测试不能通过的原因估计是你没审题,我估计题目的意思是让你先输入一个T,然后底下跟T组字符串,最后再输出结果。(代码没问题)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧