荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: huhaiming (一生只爱她), 信区: ACMICPC
标  题: Re: 请教字符串问题
发信站: 荔园晨风BBS站 (Sat Jul 17 18:20:38 2004), 站内信件


别教这么恶心的方法
如果不定长的话,先用gets读进一行,
然后再用sscanf再处理就行了


附: program版有文章介绍过这样的输入方法,节选粘贴出来:
不定长数组的输入

  这里主要讨论不定长一维数组的情况,多维数组的情况一般是不会出现的,因
为太恐怖了。
  例如,有这样的测试数据,每行是一个一维数组:
1 2 3
1 2 3 4
  从输入数据里,我们无法得知每行究竟有几个数。

  对于这种情况,一般做法是,先用gets函数把一行读到字符串中,再处理这个
字符串。以前我的做法是用strtok函数来解析这个字符串,后面我无意发现一种
高深的方法,这样写:
char str[100], *p;
int number[100], n, i;
while (gets(str) != NULL)
{
    p = str;
    i = 0;
    while (sscanf(p, "%d%n", &number[i], &n) == 1)
    {
        p += n;
        i++;
    }

    ...

}
  你知道scanf还可以用%n吗?

【 在 kaman (天外飞仙) 的大作中提到: 】
: 那就%s之后一个%c,判断%c读进的是不是‘\n'~
: 【 在 bakey (深海的鱼爱上会潜水的猫) 的大作中提到: 】
: : 那怎么结束呢?他一次输入几个句子的,但是scanf不会把空格和换行读进来啊~


--

菩提本无树,明镜亦非台

本来无一物,何处惹尘埃

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 210.21.224.234]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店