| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3117 人关注过本帖, 1 人收藏
标题:比较两个字符串问题
只看楼主 加入收藏
hongwu147
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-2-2
结帖率:100%
收藏(1)
 问题点数:0 回复次数:9 
比较两个字符串问题
比较两个字符串,代码如下
#include<stdio.h>
main()
{
    char *str1,*str2;
    char *p,*q;
    printf("Please input string1:\n");
    scanf("%s",&str1);
    printf("Please input string2:\n");
    scanf("%s",&str2);
    p=str1;
    q=str2;
    if(*p!=*q)
        printf("两个字符串不相等\n");
    else
    {
        while((*p=*q)&&(*p!='\0')&&(*q!='\0'))
        {
            p++;
            q++;
        }
        if((*p=='\0')&&(*q=='\0'))
            printf("两个字符串相等.\n");
        else
            printf("两个字符串不相等。\n");
    }
}
编译是没问题,但调试时出错,哪位高手指点一下!Thank you!
搜索更多相关主题的帖子: 字符 
2008-02-05 16:50
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
用的什么高级编译器???
没分配内存~

樱花大战,  有爱.
2008-02-05 17:17
hongwu147
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-2-2
收藏
得分:0 
用的是vc6和devcpp5,结果都一样,怎么分配内存呀?
2008-02-05 17:47
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
main()
{
      char *str1=(char*)malloc(sizeof(char)*100);
     char *str2=(char*)malloc(sizeof(char)*100);

    char *p,*q;
    printf("Please input string1:\n");
    scanf("%s",str1);
    printf("Please input string2:\n");
    scanf("%s",str2);
    p=str1;
    q=str2;
    if(*p!=*q)
        printf("两个字符串不相等\n");
    else
    {
        while((*p=*q)&&(*p!='\0')&&(*q!='\0'))
        {
            p++;
            q++;
        }
        if((*p=='\0')&&(*q=='\0'))
            printf("两个字符串相等.\n");
        else
            printf("两个字符串不相等。\n");
    }
     free(str1);
    free(str2);  

}

樱花大战,  有爱.
2008-02-05 18:19
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
收藏
得分:0 
记住这点:存储字符窜用数组,引用字符窜用指针

without further ado, let’s get started
2008-02-05 18:37
ONOSIN
Rank: 2
等 级:论坛游民
帖 子:18
专家分:20
注 册:2007-6-16
收藏
得分:0 
while((*p=*q)&&(*p!='\0')&&(*q!='\0'))

应该是*p==*q吧
2008-02-05 22:45
hongwu147
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-2-2
收藏
得分:0 
对,应该是*p==*q
这次运行就对了,谢谢各位了!
2008-02-05 23:27
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
这个问题确实要搞得明明白白才好,以前我也和楼主样产生过这种问题!

/images/2011/147787/2011051411021524.jpg" border="0" />
2008-02-06 11:13
jxw123
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-2-16
收藏
得分:0 
用字符串比较函数做吧!
#include"stdio.h"
#include"string.h"
void main()
{
    char str1[10],str2[10];
    char *p,*q;
    p=str1;
    q=str2;
    printf("Please input string1:\n");
    gets(str1);
    printf("Please input string2:\n");
    gets(str2);
    if(strcmp(p,q)==0)
    {
        printf("两个字符串相等.\n");
    }
    else
    {
        printf("两个字符串不相等\n");
    }
}
2008-02-16 04:55
aprogram
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-2-15
收藏
得分:0 
scanf有问题
str1和str2已经是指针了,不要再&
申请内存,去掉scanf中的&,将=换成==

学C语言多年,如今才知道一事无成
2008-02-16 08:39
快速回复:比较两个字符串问题
数据加载中...
 
   



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

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