Chinaunix首页 | 论坛 | 博客
  • 博客访问: 157683
  • 博文数量: 83
  • 博客积分: 3956
  • 博客等级: 中校
  • 技术积分: 663
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-24 16:29
文章分类

全部博文(83)

文章存档

2010年(83)

我的朋友

分类: C/C++

2010-11-16 11:43:29

原 型:char *strtok(char *s, char *delim);

功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

说明:首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。
     strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个字符串。

返回值:从s开头开始的一个个被分割的串。当没有被分割的串时则返回 NULL。
      所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

缺点:将原始字符串强制修改,这是我们不愿意看到的,所以,如果使用该函数的话,需要将其备份。

#include
#include

int main(void)
{
    char buf[] = "ls      -a     -l";

    char *delim = " ";

    char *retptr = NULL;
    char *str = buf;
    printf("原始字符串:%s\n", buf);
    printf("分割字符串如下:\n");

    while(1) {
        retptr = strtok(str, delim);
        if (retptr) {
            printf("%s\n", retptr);
        }
        else
            break;
        str = NULL;
    }
    printf("分割后原字符串已被强制修改为:%s\n", buf);
    return 0;
}


运行结果:

原始字符串:ls      -a     -l
分割字符串如下:
ls
-a
-l
分割后原字符串已被强制修改为:ls


阅读(504) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~