| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 547 人关注过本帖
标题:if语句问题 跳不出
只看楼主 加入收藏
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:9 
if语句问题 跳不出
输入一串单词
we  are at   the b2b web
既输出
We Are At The B_2_b Web
编程要求
1 每个单词首字母大写
2 多个空格子输出一个
3数字与字符之间要用“_”间隔
#include<stdio.h>
#include<string.h>
main()
{
    char a[500];
    int i,j=1,k=0;
    gets(a);
    for(i=0;a[i]!='\0';i++)
    {
   
        if(a[i]!=' ')
        {
            if(j>0)
            {
                a[i]=a[i]-32;
                j=0;
            }
            if(a[i]>='0'&&a[i]<='9')就是这里出问题了  如果输入数字就跳不出IF   输入字母就正常
            {
                a[k]='_';
                k++;
            /*    a[k]=a[i];
                k++;
                a[k]='_';
                k++;*/
            }
        
        
            a[k]=a[i];   
            k++;
        }
        
        else
        {
            if(j==0)
            {
                a[k]=' ';
                k++;
            }
            j++;
        }
    }
    a[k]='\0';
    puts(a);
}
大侠帮忙啊
修改一下我的代码
搜索更多相关主题的帖子: 单词 数字 include 
2012-02-28 22:23
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:10 
呵呵,不细心啊看到没注释要加//
        if(a[i]>='0'&&a[i]<='9')     //就是这里出问题了  如果输入数字就跳不出IF   输入字母就正常
            {
                a[k]='_';
                k++;
            /*    a[k]=a[i];
                k++;
                a[k]='_';
                k++;*/
            }

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2012-02-28 22:39
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
收藏
得分:0 
回复 2楼 fourleaves
我代码里没注释的    那是我写给你看的
2012-02-28 22:42
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
回复 3楼 a646404908
我测试咯都没问题啊~~~。。。。
你是说吧它改成 if(a[i]>=0&&a[i]<=9)就行是吗?。。。

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2012-02-28 22:49
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
收藏
得分:0 
回复 4楼 fourleaves
不是
你输入:
saw2s 就输不出来。
如果输入纯字母就正常输出
2012-02-28 23:01
辰星睿
Rank: 2
等 级:论坛游民
威 望:3
帖 子:33
专家分:63
注 册:2010-12-24
收藏
得分:20 
你这个代码吧 涉及两个数组 你用的一个数字相互赋值  这就导致了覆盖了原来的值 所以不出意外就会崩溃 还有个问题没考虑 就是数字后面也要加上“_”才对 我已经修改 vs2010上通过 请参考#include<stdio.h>
 #include<string.h>
 void main()
 {
     char a[500];
     char b[500];
     int i,j=1,k=0;
     gets(a);
     for(i=0;a[i]!='\0';i++)
     {
     
        if(a[i]!=' ')
         {
             if(j>0)
             {
                 a[i]=a[i]-32;
                 j=0;
             }
             if(a[i]>='0'&&a[i]<='9')
             {
                 b[k++]='_';
                 
             }
             if(a[i-1]>='0'&&a[i-1]<='9'&&i>0)
             {
                 b[k++]='_';
             }
         
         
            b[k++]=a[i];   
            
         }
         
         else
         {
             if(j==0)
             {
                 b[k]=' ';
                 k++;
             }
             j++;
         }
     }
     b[k]='\0';
     puts(b);
 }
 
2012-02-28 23:07
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
收藏
得分:0 
先睡觉咯 明天再来
2012-02-28 23:07
辰星睿
Rank: 2
等 级:论坛游民
威 望:3
帖 子:33
专家分:63
注 册:2010-12-24
收藏
得分:0 
我还忽略了种情况 就是第一个字符就是数字的情况 这个条件不难实现楼主自己添上就好  希望有用
2012-02-28 23:11
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
收藏
得分:0 
谢咯
2012-02-28 23:12
辰星睿
Rank: 2
等 级:论坛游民
威 望:3
帖 子:33
专家分:63
注 册:2010-12-24
收藏
得分:0 
回复 9楼 a646404908
小意思 给分哦 谢谢
2012-02-29 10:36
快速回复:if语句问题 跳不出
数据加载中...
 
   



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

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