作者AGanPTT (阿干)
看板C_and_CPP
标题[问题] 关於strtok跟sccanf
时间Mon Jun 22 18:11:02 2009
看的很多文
但还是不懂到底该怎麽用ˊˋ
第一次使用这东西
我是这麽写
char m[ 3000 ] = "3 3 3 4 5 6 2 4 7";
char *token;
while ( token != NULL )
{
sscanf( m, "%d %d %d", &a, &b, &c );
token = strtok( m, " " );
token = strtok( NULL, " " );
printf( "%d %d %d", a, b, c );
}
我是想要让字串内的数字三个三个一组读出来
但怎麽读都失败
请教一下板上高手
这该怎麽用
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.104.117
1F:推 ianfang:while(sscanf( m, "%d %d %d", &a, &b, &c )) 06/22 18:31
2F:→ ianfang:{ printf( "%d %d %d", a, b, c ); } 我真看不出来你程式 06/22 18:32
3F:→ ianfang:跟你想做的问题有什麽关系... 06/22 18:33
4F:推 ianfang:好像有点错~先不要用 06/22 18:36
6F:推 ianfang:整个被搞混了...首先strtok只要第一次传给他字串~所以不能 06/22 18:42
7F:→ ianfang:写在while里~sscanf是多余的~如果你是要字串切割~你多做这 06/22 18:44
8F:→ ianfang:动作要干嘛 06/22 18:44
9F:推 zlw:老实说,原PO光说不懂,到底哪里不懂也看不出来,要怎麽回你 06/22 18:45
10F:推 world9918:你要一次抓三组那不能用" "当切割条件 06/22 19:17
11F:→ world9918:不然一次只切到一个数字 06/22 19:17
12F:→ AGanPTT:不懂要怎麽切= = 才能一次把三个数字切掉 06/22 19:28
13F:→ AGanPTT:应该说连strtok怎麽用都不会 06/22 19:29
14F:推 zlw:此例,strtok找到" "後,将" "更改为\0。并传回以这个\0当结尾 06/22 19:40
15F:→ zlw:的 C-Style 字串开头所在的char * 06/22 19:41
16F:→ zlw:第一次用m当参数1时,由m[0]开始往右搜寻,之後就从前一次 06/22 19:42
17F:→ zlw:return的指标,所指的地方去往右搜寻 06/22 19:42
18F:→ zlw:打错,之後的搜寻应该是前一次取代成\0的地方去搜寻 06/22 19:43
19F:→ zlw:的後面地方 06/22 19:43