| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3146 人关注过本帖
标题:字符串判等的问题,输出超奇怪
只看楼主 加入收藏
B_soldier
Rank: 2
等 级:论坛游民
帖 子:38
专家分:41
注 册:2016-10-20
收藏
得分:0 
回复 10楼 B_soldier
我的想法是:进入循环i=0,如果str1[0]=' ',那么while自动i++,i=1,然后判断str1[1],以此类推
2016-12-18 21:38
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:10 
如果是想在输入时就过滤掉空格,同时还可以将小写字母全部转换为大写字母,代码科这样写:
程序代码:
#include<stdio.h>
#include <string.h>

void main()
{
    char str1[80],str2[80];
    int i;
    i=0;
    while((str1[i++]=getchar())!='\n')
    {
        if(str1[i-1]>='a' && str1[i-1]<='z')str1[i-1]-=32;
        if(str1[i-1]==' ')i--;
    }
    str1[i]=0;
    i=0;
    while((str2[i++]=getchar())!='\n')
    {
        if(str2[i-1]>='a' && str2[i-1]<='z')str2[i-1]-=32;
        if(str2[i-1]==' ')i--;
    }
    str2[i]=0;
    if(strcmp(str1,str2))printf("NO\n");
    else printf("YES\n");
}
2016-12-18 21:51
B_soldier
Rank: 2
等 级:论坛游民
帖 子:38
专家分:41
注 册:2016-10-20
收藏
得分:0 
回复 12楼 xzlxzlxzl
我用了一个更傻逼的方法,判断之前就把空格先删掉,然后再判定,不过,代码的执行效率明显差多了
    for(i=0, j=0; str1[i]!='\0'; i++)
        if(str1[i]!=' '){
            s1[j]=str1[i];
            j++;
        }
    s1[j]='\0';
    for(i=0, j=0; str2[i]!='\0'; i++)
        if(str2[i]!=' '){
            s2[j]=str2[i];
            j++;
        }
    s2[j]='\0';
2016-12-19 18:19
B_soldier
Rank: 2
等 级:论坛游民
帖 子:38
专家分:41
注 册:2016-10-20
收藏
得分:0 
回复 12楼 xzlxzlxzl
你这样也行的,我昨天没看清题目,一直以为要原样输出数组的,其实不用,那就可以改动数组,直接在输入的时候把空格删掉了
2016-12-19 18:23
快速回复:字符串判等的问题,输出超奇怪
数据加载中...
 
   



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

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