题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1106
这题需要用上三个函数,strtok、atoi、sort函数
atoi(表示 alphanumeric to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。
函数说明:
参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。
例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int n;
char *str = "12345.67";
n = atoi(str);
printf("int=%d\n",n);
return0;
}
原型:char *strtok(char *s, char *delim);
功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。
说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。 strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个字符串。 返回指向下一个标记串。当没有标记串时则返回空字符NULL。
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[] = "aaa bbb ccc ddd";
char c[] = " ";
char *r = strtok(s, c);
while (r != NULL) {
printf("%s\n", r);
r = strtok(NULL, c);
}
return 0;
}
/*代码执行之后,将输出以下数据:
aaa
bbb
ccc
ddd
需要注意的是,第一次调用strtok函数时,需要指明str参数,在以后调用strtok函数时,该参数必须为NULL。*/
题目代码:
在这题中不能直接用sting型,strtok 原型:char *strtok(char *s, char *delim);
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
#define M 10005
int a[M];
char b[M];
int main()
{
while(gets(b))
{
char *str;
a[0] = atoi(strtok(b,"5"));
int x = 1;
while(str = strtok(NULL,"5"))
a[x++] = atoi(str);
sort(a,a+x);
int i=0;
printf("%d",a[0]);
for(i = 1;i < x; i++)
printf(" %d",a[i]);
printf("\n");
}
return 0;
}