strtok()函数怎么使用
/* Note:Your choice is C IDE */
/*函数说明:strtok()用来将字符串分割成一个个片段,
参数s指向欲分割的字符串, 参数delim则为分割字符串, 当strtok()在参数s
的字符串发现到参数delim的分割字符时则会将该字符改为\0字符。在第一次调用时,
strtok()必需给予参数s字符串,
往后的调用则将参数s设成NULL。 每次调用成功则返回下一个分割后的字符串指针。
*/
#include "stdio.h "
#include "string.h "
main()
{
char *s= "dd cdma dda ";
char e[26];
char *m;
char *tt= " ";
int maxlen=0,minlen=0;
memset(e,0,26);
m=strtok(s,tt);
maxlen=strlen(m);
printf( "%i ",maxlen);
printf( "%s\n ",m);/*pointer assignment */
printf( "\n ");
while(m)
{
m=strtok(NULL,tt);
printf( "%s ",m);
minlen=strlen(m);
if(maxlen <minlen)
{
memset(e,0,26);
strcpy(e,m);
maxlen=minlen;
}
}
printf( "%s ",e);
printf( "\n ");
}
上面是我写的一个测试代码能够编译结果不对
在TC和VC6。0中都不能成功得到结果
[解决办法]
printf( "%s ",m); /*加了这一句输出结果的函数就不能得到正确结果,但是删除这一句就能得到结果,为什么*/
===========================
前面加上
if(!m) break;