| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 466 人关注过本帖
标题:我想求教段代码!谢谢!!
只看楼主 加入收藏
雪山的猫
Rank: 1
等 级:新手上路
帖 子:44
专家分:5
注 册:2012-12-23
结帖率:95.24%
收藏
已结贴  问题点数:6 回复次数:1 
我想求教段代码!谢谢!!
对于一个里面含有数字字符的字符串(长度小于200),现在将连续的数字字符组成的整数转化为16进制输出。
#include<stdio.h>
#include<string.h>
int f(char c)
{
    if(c>='0'&&c<='9')
    return 1;
    else
    return 0;
}
int y(long long int n)(这是16进制的转换,我还是明白了的)
{
    int i,k,b[201];
    if(n!=0)
    {
        k=0;
        while(n>0)
        {
            b[k++]=n%16;
            n=n/16;
        }
        for(i=k-1;i>=0;i--)
        printf("%c", b[i]/10>0 ? b[i]-10+'A': b[i]+'0');
        printf("\n");
    }
    else
    printf("0\n");
}
int main()
{
    char s[201];
    long long int i,j,a[201],len;
    while(scanf("%s",s)!=EOF)
    {
        len=strlen(s);
        int k=0;
        long long int g=0;
        for(i=0;i<len;i++)
        {
            if(f(s[i])==1)
            g=g*10+(s[i]-'0');
            if(i==len||f(s[i])==1&&f(s[i+1])==0)(就是这里对字符串的筛选我就是不懂。i明明是<len的,为何这if语句?)
            {
                a[k++]=g;
                g=0;
            }
        }
        for(i=0;i<k;i++)
        y(a[i]);
    }
    return 0;
}
搜索更多相关主题的帖子: include return 字符串 
2013-05-08 22:47
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:6 
if(i==len||f(s[i])==1&&f(s[i+1])==0)应该是这样吧:
if(i==(len-1)||f(s[i])==1&&f(s[i+1])==0)  其含义是如果s[i]是字符串的最后一个字符或者s[i]是连续数字字符的最后一个
2013-05-08 23:18
快速回复:我想求教段代码!谢谢!!
数据加载中...
 
   



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

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