#include<stdio.h>
#include<string.h>
int main()
{
int N,i,j;
char S[100]={0},T[50]={0};
printf("input N: ");
scanf("%d",&N);
printf("input S: ");
scanf("%s",S);[img=https://img-bbs.csdn.net/upload/202105/08/1620460591_114709.png][/img]
if(strlen(S)!=N)
{
printf("error\n");
printf("input S: ");
scanf("%s",S);
}
for(i=0;i<N/2;i++) T[i]=S[i];
if(strcmp(S,strcat(T,T))==0) printf("yes");
else printf("no");
return 0;
}
if(strcmp(S,strcat(T,T))==0) 这是想做什么呀?
其实完全不用strcmp,也不用拷贝到T. 直接在循环里面一个个字符比较就可以了。
#include<stdio.h>
#include<string.h>
int main()
{
int N,i,j;
char S[101];
printf("input N: ");
scanf("%d",&N);
printf("input S: ");
scanf("%s",S);
if(strlen(S)!=N)
{
printf("error\n");
printf("input S: ");
scanf("%s",S);
}
if (N % 2 == 1)
{
printf("no");
return 0;
}
for(i = 0; i<N/2; ++i)
{
if (S[i] != S[i + N/2])
{
printf("no");
return 0;
}
}
printf("yes");
return 0;
}
// Output
input N: 6
input S: abcabc
yes
input N: 6
input S: abcabc
yes
if(strlen(S)!=N)---这不应该用while(strlen(S) != N)么?
测试了一下,没问题啊
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html