C-如何比较两个字符



在我的代码中,我在if语句中有问题。我觉得代码是正确的。这检索第一个字符数组的ASCII值。但是,ASCII值第二个字符阵列保留0。帮助我解决这个问题。

#include<stdio.h>
#include<string.h>
void main()
{
  char team1[50],team2[50];
  int testcase,rounds,i=0,j,l,count=0,ascii1,ascii2;
  scanf("%d",&testcase);
  while(i<testcase)
  {
    scanf("%d",&rounds);
    scanf("%s",team2);
    scanf("%s",team1);
    printf("team2..%sn",team2);
    for(l=0;l<rounds;l++)
    {
      for(j=l;j<rounds;j++); //<--- Don't do this...
      {
      ascii1=team1[l];
      ascii2=team2[j];
      if(ascii1==ascii2)   
      {
        count+=1;
      }
      printf("count..%dn",count);
      }
    }
    printf("%dn",count);
    i++;    
  }
}

应显示相同字符的数量。对于Exmaple:输入:

1
4
asdf
qwsa

输出:

2

在第二个for之后,您有一个冗余(错误的(半隆(;(,使其在空块上循环。删除它,您应该可以。

for(l=0;l<rounds;l++)
{
ascii1=team1[l];
for(j=l;j<rounds;j++)
{
ascii2=team2[j];
if(ascii1==ascii2)   
{
count+=1;
}
}
}

这仅适用于您的输入((14ASDFQWSA(如果您要更改输入,则代码也会像输入一样更改ASDF和QSA

相关内容

  • 没有找到相关文章

最新更新