昨天蓝桥杯卡了一道水题,原因是不知道怎么读入。今天在网上搜了下,也没找到很合适的策略,索性自己yy了。如果有更好的方法,请大家指教!
一个参考地址:http://bbs.csdn.net/topics/380203242
yy代码:
#include <cstdio>
int main(){
char s[100];
int a[100];
gets(s);
char *p = s;
int count = 0;
int num,len;
while(sscanf(p,"%d",&num)){
a[count++] = num;
len = 0;
while(num){num /= 10;len++;}
if(!len) len = 1;//特殊情况,当num是0
p += len+1;//这里是危险的,因为最后指针可能超出原来的字符串
}
for(int i = 0;i < count;i++)
printf("%d ",a[i]);
return 0;
}
用strtok的方法
const int INF = 1000000000;
int num[maxn];
int main(){
char str[] = "123 3124 432 34345 12";
char delims[] = " ";
char *result = NULL;
result = strtok( str, delims );
int countn = 0;
while( result != NULL ){
num[countn++] = atoi(result);
result = strtok( NULL, delims );
}
return 0;
}