| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 406 人关注过本帖
标题:帮看下程序的问题
只看楼主 加入收藏
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
结帖率:78.13%
收藏
 问题点数:0 回复次数:6 
帮看下程序的问题
这个程序的作用是处理一个字符串,把多余的空格删除只剩下一个空格,单词的开头字母大写,数字和字母之间添加‘-’符号。


#include <stdio.h>
#include <string.h>
#include <ctype.h>
main()
{
    char a[50],b[50];
    int i,k,j=0;
    gets(a);
    k=strlen(a);
    for(i=0;i<k;i++)
    {
        if(a[i]==' '&&a[i+1]==' ')
            continue;
    else
        b[j++]=a[i];
    }
    b[j]='\0';
   //    puts(b);
    k=strlen(b);
    if(b[0]>='a'&&b[0]<='z')
        b[0]=toupper(b[0]);
    for(i=1;i<k;i++)
    {
        if(b[i]==' '&&(b[i+1]>='a'&&b[i+1]<='z'))
            b[i+1]=toupper(b[i+1]);
    }
    for(j=0;j<k;j++)
    {
    if(((b[j]>='a'&&b[j]<='z')||(b[j]>='A'&&b[j]<='Z'))&&(b[j+1]>='0'&&b[j+1]<='9'))
    {
       for(i=k-1;i>=j+1;i--)
           b[i+1]=b[i];
           b[j+1]='-';
    }
 
    }
    b[j+1]='\0';
    puts(b);
}
搜索更多相关主题的帖子: continue include 字符串 
2012-12-09 19:31
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
你的程序大体上没什么问题,就是数字和字母之间没有加上'-',改了一下小细节和if的判断条件,看看下面的:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
    char a[100],b[100];
    int i,k,j;
    memset(a,'\0',sizeof(a));
    memset(b,'\0',sizeof(b));
    gets(a);
    k=strlen(a);
    for(i=0,j=0;i<k;i++)//去多余空格
    {
        if(a[i]==' '&&a[i+1]==' ')
            continue;
        else
            b[j++]=a[i];
    }
    k=strlen(b);//其实j就表示b的长度
    if(b[0]>='a'&&b[0]<='z')
        b[0]=toupper(b[0]);//没这么转化过,我都是用b[0]=b[0]+32来转化的
    for(i=1;i<k;i++)
    {
        if(b[i]==' '&&(b[i+1]>='a'&&b[i+1]<='z'))
            b[i+1]=toupper(b[i+1]);
    }
    for(j=0;j<k;j++)
    {//数字字母,字母和数字之间都要加'-'
        if((((b[j]>='a'&&b[j]<='z')||(b[j]>='A'&&b[j]<='Z'))&&(b[j+1]>='0'&&b[j+1]<='9'))\
           ||(((b[j+1]>='a'&&b[j+1]<='z')||(b[j+1]>='A'&&b[j+1]<='Z'))&&(b[j]>='0'&&b[j]<='9')))
        {
            k=strlen(b);//重新计算b长度
            for(i=k;i>j;i--)
            b[i]=b[i-1];
            b[j+1]='-';
        }
    }
    puts(b);
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 小小战士 于 2012-12-9 21:01 编辑 ]

小小战士,战士中的战斗机!
2012-12-09 20:09
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
回复 2楼 小小战士
请问,怎么发图片啊?


[fly]存在即是合理[/fly]
2012-12-09 20:16
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

小小战士,战士中的战斗机!
2012-12-09 20:20
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
收藏
得分:0 
回复 2楼 小小战士
你发的程序字符串处理后字符串最后几个字符怎么没了??
2012-12-09 20:21
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
回复 4楼 小小战士
谢谢!


[fly]存在即是合理[/fly]
2012-12-09 20:30
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
回复 5楼 tompobing
if里疏忽,改好了

小小战士,战士中的战斗机!
2012-12-09 21:00
快速回复:帮看下程序的问题
数据加载中...
 
   



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

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