C语言strtok函数的用法

C语言strtok函数的用法先理解 strtok 函数的定义 尤其是指针方面的 需要自己理解 nbsp 原型 char strtok char s constchar delim include 分解字符串为一组字符串 s 为要分解的字符串 delim 为分隔符字符串 strtok 用来将字符串分割成一个个片段 参数 s 指向欲分割的字符串 参数 delim 则为分割字符串中包含的所有字符 当

先理解strtok函数的定义,尤其是指针方面的,需要自己理解。

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

#include

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

strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delim中包涵的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针。










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



下面是应用例子:

读取.stl文件某特定一行的数据

fgets(buf,1024,f1);//信息储存在buf中
        
        char *token = NULL;
        token = strtok( buf, ” “);//分割字符串,以空格为分割符


nor_coordi[0]=token;
            if (token!=NULL)
            {

                token = strtok(NULL, ” “);
                
            }
            nor_coordi[1]=token;
            if (token != NULL)
            {

                    token = strtok(NULL, ” “);
                    
            }
            nor_coordi[2]=token;    
            if (token != NULL)
            {

                    token = strtok(NULL, ” “);
                    
            }
            nor_coordi[3]=token;
            if (token != NULL)
            {

                    token = strtok(NULL, ” “);
                    
            }
            nor_coordi[4]=token;
            if (token != NULL)
            {

                    token = strtok(NULL, ” “);
                    
            }   
就可以有选择性的对制定的数组进行输出了。





























原数据为:

 facet normal +0.0000000E+00 +0.0000000E+00 +1.0000000E+00

分割读取后:

+0.0000000E+00    +0.0000000E+00    +1.0000000E+00

通过同样的方法,将E的指数表达换成实数表示就可以获得坐标值了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214790.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午3:26
下一篇 2026年3月18日 下午3:26


相关推荐

  • 即梦AI怎么更换手机号

    即梦AI怎么更换手机号

    2026年3月12日
    3
  • 测试用例要素_用例是什么

    测试用例要素_用例是什么测试用例分层每个测试用例都有1个或多个测试步骤(List[step]),每个测试步骤对应一个API请求或其他用例的引用。从上图分析,我们可以看到testsuite中包含了3个测试用例,testca

    2022年7月31日
    9
  • 线程锁EnterCriticalSection和LeaveCriticalSection的用法

    线程锁EnterCriticalSection和LeaveCriticalSection的用法线程锁的概念函数EnterCriticalSection和LeaveCriticalSection的用法注:使用结构CRITICAL_SECTION需加入头文件#include“afxmt.h”定义一个全局的锁CRITICAL_SECTION的实例  和一个静态全局变量CRITICAL_SECTIONcs;//可以理解为锁定一个资源staticintn_AddVal

    2025年12月6日
    3
  • linux挂载U盘命令

    linux挂载U盘命令1 查看是否连接了 U 盘 sudofdisk l2 查看文件系统挂载信息 mount 若没有显示我们的 u 盘 dev sdb1 的挂载信息 就我们需要挂载 u 盘 挂载点随便选择一个行了 这里我们在当前目录建立一个 usb 文件夹作为挂载点 3 创建挂载点 文件夹 mkdirusb4 挂载 U 盘 sudomount dev sdb1usb5 卸载 U 盘 sudoumount dev sdb1 或者 sudoumountus 跟挂载点和设备名都行

    2026年3月19日
    2
  • window10编译器_windows shell编程

    window10编译器_windows shell编程原文地址http://www.cctry.com/forum.php?mod=viewthread&tid=250698&extra=page%3D1&page=1&如何让我们的c++程序可以支持脚本,尤其是支持JavaScript是件很有意思的事情的,那样可以为软件的灵活性,扩展性提供可能。你可能会说用JavaScript引擎,对,JavaScript引擎有很多,有Googlev8,s

    2022年10月10日
    5
  • 关于.gitignore不起作用「建议收藏」

    关于.gitignore不起作用「建议收藏」由于公司和家里的as版本不同,倒腾了好久,但是代码到本地后build.gradle等文件做了修改,为了不影响公司版本,故家里的需要忽略这些文件的修改,想到的就是加gitignore配置,直接添加不起效果,找到如下办法:有时我们发现添加.gitignore文件后并没有忽略我们想要忽略的文件,解决方法就是清除一下缓存,原因gitignore对已经追踪(track)的文件无效,清除缓存后文件将以未追

    2022年10月21日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号