|
发表于 2003-9-9 16:54:31
|
显示全部楼层
最初由 darksun 发表
没想到这么多人来响应,我有一个好的想法:把他们封装成一个函数
如:要求:返回值为第一个word,buf为去掉第一个word的其余部分。那么
可以通过多次调用取得所需的word的。
char *getword(char *buf)
{
char *p,*q;
char word[128];
p = buf;
q = word;
while(isspace(*p)) p++;
while(!isspace(*p)) *q++ =*p++;
*q = '\0';
strcpy(buf,p);
ruturn(word);
}
没有调试不知道可不可以;
还有一个想法就是
char *getword(char *buf,int n)
其中,buf为要分隔的一句话已空格或者多个空格或者\t或者“,”分隔,n为所需要取的第几个word值。
不知道大家有什么好的想法
欢迎讨论
这个破坏了buffer,而且有溢出的可能性。
- char *
- getword(char *buf)
- {
- static char *p = buf;
- char *q;
- char word[128];
- q = word;
- while(isspace(*p)) p++;
- while(!isspace(*p) && (q < word + 128)) *q++ =*p++;
- *q = '\0';
- ruturn(word);
- }
复制代码
也没调试,呵呵。 |
|