设为首页 加入收藏

TOP

Hdu 1106 排序 (atoi函数与 strtok函数的应用
2015-07-20 17:46:53 来源: 作者: 【 】 浏览:1
Tags:Hdu 1106 排序 atoi 函数 strtok 应用

?

好久都没刷题了,今天突然特别怀念以前刷题的日子,所以就找了几道水题来做做~~呵呵

在写这篇博客之前呢,已经很明了自己已经大三了,时光匆忙,在还没来得及转过头来,就已经过了两年了大学,原来走了这么远了~~感觉再怎么样,大三还是不敢偷懒~~不过有时候还真是挺迷茫的说实话,在这里呢,真心希望能得到你们各位的建议,只要是对我未来就业有好处的,我都会虚心取纳,(BTW:我是学嵌入式方向的)万分感谢~~~

?

Problem Description

输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。

你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。

Input

输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。

输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。

Output

对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。

Sample Input

0051231232050775


Sample Output

0 77 12312320

?

思路解析:

atoi()函数的功能:将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('')才结束转化,并将结果返回(返回转换后的整型数)。

strtok函数原型:char *strtok(char *s, char *delim);

功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

说明:首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。

strtok在s中查找包含在delim中的字符并用NULL('/0')来替换,直到找遍整个字符串。

返回值:从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。

所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

?

通过知道了以上两个函数的介绍,那么解这道题就容易多了,代码如下:

?

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #define MAXN 1005 #define RST(N)memset(N, 0, sizeof(N)) 
       using namespace std
       ; int Num
       [MAXN
       ], cnt
       ; char str
       [MAXN
       ], *p
       ; int cmp
       (const void *a
       , const void *b
       ) { return *(int *)a
        - *(int *)b
       ; } int main() { while(~scanf
       (%s
       , str
       )) { cnt
        = 0
       ; p
        = strtok
       (str
       , 5
       ); while(p
        != NULL
       ) { Num
       [cnt
       ++] = atoi
       (p
       ); p
        = strtok
       (NULL
       , 5
       ); } qsort
       (Num
       , cnt
       , sizeof(int), cmp
       ); for(int i
       =0
       ; i
       <cnt
       ; i
       ++) { printf
       (%d
       , Num
       [i
       ]); i
        == cnt
       -1
        ? printf
       ( 
       ) : printf
       ( 
       ); } } return 0
       ; } 
      
     
    
   
  


?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Reverse Words in a String 下一篇POJ 1966 Cable TV Network(无向..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)