Chinaunix

标题: 编程--字符提取问题 [打印本页]

作者: pcmpcmpcm    时间: 2007-06-27 20:10
标题: 编程--字符提取问题
想在字符串" 123  345  456 "中,分别提取"123","345","456"存放在数组A[2]中.求教怎么实现最简单
  谢谢
作者: MMMIX    时间: 2007-06-27 20:15
看你准备用什么语言了。
作者: pcmpcmpcm    时间: 2007-06-27 20:17
在LINUX下,用C语言实现
作者: jarodlau    时间: 2007-06-27 20:19
char c;

while((c=getchar()) != EOF) {
    if ( c >= '0' $$ c <= '9' )
        存入一个buffer,或者直接给 A[2]
          while (c == ' ') ;
}
作者: MMMIX    时间: 2007-06-27 20:24
原帖由 pcmpcmpcm 于 2007-6-27 20:17 发表于 3楼  
在LINUX下,用C语言实现

strchr(3), strtok(3) 都是不错的选择。或者自己手工循环也可以。
作者: pcmpcmpcm    时间: 2007-06-27 20:24
说错了,是分别存放在A[0],A[1],A[2]中

  谢谢指教,急用
作者: cunettenuc    时间: 2007-06-27 20:40
原帖由 pcmpcmpcm 于 2007-6-27 20:10 发表于 1楼  
想在字符串" 123  345  456 "中,分别提取"123","345","456"存放在数组A中.求教怎么实现最简单
  谢谢



如果说中间只是有空格的话. 而且A是整型的话.

  1. char str[] = "123 345 456";
  2. sscanf(str, "%d %d %d", &A[0], &A[1], &A[2]);
复制代码

[ 本帖最后由 cunettenuc 于 2007-6-27 20:43 编辑 ]
作者: phoenixson    时间: 2007-06-27 20:41
用perl 或者tcl最好了
@A=split(/\s+/,$string)
作者: duanjigang    时间: 2007-07-02 11:42
sscanf("123, 345, 456", "%s %s %s", a[0], a[1], a[2]);




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2