标题:字符串, 保留一个空格
只看楼主
huwengui
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:166
专家分:158
注 册:2011-4-22
结帖率:83.33%
已结贴  问题点数:10 回复次数:9 
字符串, 保留一个空格
输入一串字符(有字母有数字有空格)  请将连接的字母组成单词(第一个字母大写)数字前后能加一个下划线



输入:hu  wen45  gui

输出:Hu wen_45_ Gui

[ 本帖最后由 huwengui 于 2011-6-13 22:45 编辑 ]
搜索更多相关主题的帖子: 字符串 下划线 
2011-06-13 22:09
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
得分:3 
自己写吧,这么无聊
2011-06-13 22:41
huwengui
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:166
专家分:158
注 册:2011-4-22
得分:0 
回复 2楼 voidx
我无聊???
我要是会的话,,,还会放到论坛里面吗???
问你啊    怎么处理多空个保留一个
2011-06-13 22:44
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
得分:0 
楼主别误会,我是说这个题没什么趣味性,要是我的话让你不开心了我向你道歉

程序代码:
if (s[0] == ' ') {
    ...
}

// i > 0  时
if (s[i] == ' ' && s[i - 1] == ' ') {
    ...
}


大概就是上面这么个意思吧,关于循环什么的自己随便写写就能写出来了
2011-06-13 22:48
bccn_2012
Rank: 6Rank: 6
等 级:侠之大者
帖 子:158
专家分:447
注 册:2011-5-14
得分:3 
程序代码:
/*题目:输入一行字符(字符串),统计其中包含多少单词,单词之间用空格分开。
       附加要求:需要验证统计的单词是合法的,也就是说统计的单词字符是字母
*/

#include <stdio.h>

 #include <stdlib.h>

 #include <ctype.h>


 int main(void)

 {
     int ch, space=0, wd=0,i;//定义变量
     char put[100];
     gets(put);
     if(put[0]==' ')//判断第一个字符是不是空格
     {
         space=1;
     }
     for(i=0;put[i]!='\0';i++)//循环扫描
     {
         if(put[i]==' '||put[i]=='.'||put[i]=='!'||put[i]=='?'||put[i]==',')//判断是否出项空格,标点符号
         {
             if(space==0)//判断是不是非连续的空格或符号
             {
                 wd+=1;//加一个单词(没有验证是不是非法单词)
                 space=1;//标志已经出现了空格和字符
                 ch=0;//标致这个单词还没出现非法字符
             }
         }
         else
         {
             if((put[i]<39||(39<put[i]&&put[i]<65)||(90<put[i]&&put[i]<97)||122<put[i])&&ch==0)//判断单词是否出现非法字符
             {wd-=1;//出出项非法字符把这个单词就为非法的,减一个
               ch=1;//ch=1,表示这个单词中已经出非法字符
             }
             space=0;//表示下一个出现的字符为非连续空格或符号
         }
     }
     if(space==0)//如果最后没有出现的空格或字符,单词数加一
     {
         wd+=1;
     }
     printf("单词数:%d\n",wd);

 
}


每日一题NO.4
2011-06-13 23:21
huwengui
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:166
专家分:158
注 册:2011-4-22
得分:0 
就数字前后加下划线   有问题~~~
#include <stdio.h>
#include <string.h>
 main()
{
 char a[100];
  gets(a);
  int len=strlen(a);
 char *p = a;
 int i,j=0;

 for(i=0;p[i]!= '\0';)
 {
  a[j++] = p[i++];
  while(p[i] == ' '&&p[i+1]==' ')     /*处理空格,保留一个空格*/
  {
   i++;
  }
 }
 a[j] = '\0';

for(i=0;a[i];i++)
{
if(a[0]>='a'&&a[0]<='z')  a[0]=a[0]-32;    /*首字母为大写*/
if(a[i]==' ') a[i+1]=a[i+1]-32;

if(!(a[i]>='0'&&a[i]<='9')&&(a[i+1]>='0'&&a[i+1]<='9'))    /*数字前加下划线???*/
{
  for(int k=len-1;k>i+1;k--)
    a[k+1]=a[k];
    a[k]='_';
 }

if((a[i]>='0'&&a[i]<='9')&&!(a[i+1]>='0'&&a[i+1]<='9'))   /*数字后加下划线???*/
{
  for(int k=len-1;k>=i+1;k--)
    a[k+1]=a[k];
    a[k]='_';
 }
}
  
puts(a);
}
2011-06-13 23:31
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
得分:3 
这个好像老杨以前处理过空格 你搜搜据知道
2011-06-14 08:14
a185523582a
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-3-26
得分:0 
需要正确代码高手们给写写吧
2012-03-26 21:27
a185523582a
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-3-26
得分:0 
回复 6楼 huwengui
怎么搜老杨 大哥.....
2012-03-26 21:41
a185523582a
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-3-26
得分:0 
回复 3楼 huwengui
大哥具体写写吧啊
2012-03-26 21:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-342731-1-1.html




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

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