XTU 1115 回文子串

本文介绍了一个C语言程序,该程序通过读取输入的字符串和指定的起始位置与长度,判断从该位置开始的子串是否与其逆序串相等。程序首先从标准输入读取测试用例数量,接着读取每个字符串及两个整数k和l,表示子串的起始位置和长度。然后,程序将从位置k开始的长度为l的子串复制到临时数组,逆序并比较,最后输出Yes或No来表示子串与其逆序串是否相等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>
int main()
{
    int n;
    int i,j;
    int k,l;
    
    char a[201],b[201],c[201];
    scanf("%d",&n);
    while(n--)
    {  
    
       //count 一定要放while()循环里面 
       int count = 0;
       //getchar() 用于吸收回车键“/” 
       getchar();
       //输入字符串,gets()和scanf("%s")区别可自行百度 
       gets(a);
       
       
     
       scanf("%d%d",&k,&l);
       //第一个for()循环用于把长度为l的字符串copy到另一个数组b[]中 
       for(j=0,i=k-1;i<l+k-1;i++)
       {
            b[j++] = a[i];
       }
       //然后将字符串数组b[]逆序,保存在数组c[]中 
       for(j=0,i=l-1;i>=0;i--)
       {
            c[j++] = b[i];
       }
       //对比数组b[]和c[]; 
       for(i=0;i<l;i++)
       {
           if(b[i] == c[i])
           count++;
       }
       
       //相同与不同 
       if(count == l)  printf("Yes\n");
       else printf("No\n");
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值