| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1361 人关注过本帖
标题:我自己做的一道题,发生错误,希望大侠们帮忙分析
只看楼主 加入收藏
hsyfglsd
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-11-22
收藏
 问题点数:0 回复次数:22 
我自己做的一道题,发生错误,希望大侠们帮忙分析
题:读取两个相同长度的字符串,分别存储在数组中,比较2个字符串,输出是否相等;不可用字符串头标string.h;

 #include<stdio.h>
 #include<windows.h>
 main()
{
       char line1[100],character;
       int c;
       c=0;
       printf("Enter first string\n");
       do
       {
                     character = getchar();
                     line1[c]   = character;
                     c++;
       }
       while(character != '\n');
      
      
      
       char line2[100],character2;
       int b;
       b=0;
       printf("Enter the second string\n");
       do
       {
                     character2 = getchar();
                     line2[b]   = character;
                     b++;
       }
       while(character2 != '\n');
      
       int i;
       i=0;
       while(line1[i]==line2[i]&&line1[i]!='\0'&&line2[i]!='\0')
       {i++;}
      
      
      
       if(line1[i]=='\0'&&line2[i]=='\0')
       printf("strings are equal\n");
       else
       printf("strings are not equal\n");
      
       system("pause");
      
      
      
      
}


发生的错误是,不管我输入两个何种字符,输出都是strings are not equal。希望高人帮忙分析一下
搜索更多相关主题的帖子: 分析 character include 字符串 
2008-11-22 17:29
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
小小不才,写了一个程序,也不知道是不是符合你的要求?
程序代码:
#include <stdio.h>
#define N 100
int check(char *a,char *b)
{
    for(;*a!='\0'&&*b!='\0';++a,++b)
        if(*a!=*b)    return 0;
    return 1;
}
int main(void)
{
    char a[N],b[N];
    printf("input a[],b[]:\n");
    scanf("%s %s",a,b);
    if(check(a,b))    printf("a=b\n");
    else    printf("a!=b\n");
    return 0;
}
2008-11-22 17:52
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
今天我去新华书店,看到了一模一样的题目!
你是自己找的题目还是网上找的书还是自己买的书?
如果是网上找的书,希望发我一份..

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 18:00
hsyfglsd
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-11-22
收藏
得分:0 
是我们老师的课件~~
2008-11-22 18:09
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
哦..

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 18:10
hsyfglsd
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-11-22
收藏
得分:0 
回复广陵绝唱:不怎么明白。我运行了一下,没反应·~没有输出~~
2008-11-22 18:15
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
我换一个方法做啊..
我觉得你们这方法都太麻烦了..
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
  char a[20],b[20];
  printf("Enter first string\n");
  gets(a);
  printf("Enter the second string\n");
  gets(b);
  if(!strcmp(a,b))
    printf("strings are equal\n");
  else
    printf("strings are not equal\n");
  getch();
  return 0;
}

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 18:16
hsyfglsd
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-11-22
收藏
得分:0 
回复ZQY110007:可是规定不能用string.h头文件~~
2008-11-22 18:20
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
[bo][un]hsyfglsd[/un] 在 2008-11-22 18:15 的发言:[/bo]

回复广陵绝唱:不怎么明白。我运行了一下,没反应·~没有输出~~

不应该呀,我在我的编译器上运行正常。输入的时候,输入一个字符串之后按回车再输入另一个字符串。
2008-11-22 18:40
hsyfglsd
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-11-22
收藏
得分:0 
我确实能输入两个字符~~但是输好两个字符后,再按回车,就自动退出了。我以为是你的输出不好,我就用了#include<windows.h>和system("pause"),可是还是一样自动退出。我用的编译器是Dev-C++;

我还想问一下您这个程序中 1: return 1是返回到那里去的。
                         2:*a和*b是怎么回事?看不明白。

                         3:此程序中是用了自定义函数,是吗?
2008-11-22 18:50
快速回复:我自己做的一道题,发生错误,希望大侠们帮忙分析
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012562 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved