首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

不太对!该如何解决

2013-09-07 
不太对!#include stdio.hint strcmp (char * p1,char * p2){int i,flagflag 1for (i 0 flag 1

不太对!

#include <stdio.h>
int strcmp (char * p1,char * p2)
{
int i,flag;
flag = 1;
for (i = 0; flag == 1 && p1[i] != '\0' && p2[i] != '\0'; i++)
{
if (p1[i] != p2[i])
{
flag = 0;
}
}
if (flag == 1)
{
return (0);
}
else
return (p1[i] - p2[i]);
}
int main (void)
{
char str1[100],str2[100];
int a;
printf_s ("Input str1:\n");
gets_s (str1);
printf_s ("Input str2:\n");
gets_s (str2);
a = strcmp (str1,str2);
printf_s ("\n%d",a);
}

哪不对了?输入abcd和abcb值为0呢?
[解决办法]
 看了你代码,
1 当你条件不成立的时候,
  除了 flag = 0 ,你的i++ 操作也做了
  所以左右比较的都是p1和p2的值都是空的

for (i = 0; flag == 1 && p1[i] != '\0' && p2[i] != '\0'; i++)
    {
        if (p1[i] != p2[i])
        {
            flag = 0;
            //这里直接break, 不做i++操作
            break;
        }
    }

热点排行
Bad Request.