C++ strtok的用法

2023-05-16

[size=large][align=center]strtok的用法[/align][/size]

函数原型:char *strtok(char *s, char *delim);
函数功能:把字符串s按照字符串delim进行分割,然后返回分割的结果。

函数使用说:

1.strtok函数的实质上的处理是,strtok在s中查找包含在delim中的字符并用NULL(’\0′)来替换,直到找遍整个字符串。这句话有两层含义:(1)每次调用strtok函数只能获得一个分割单位。(2)要获得所有的分割单元必须反复调用strtok函数。

2.strtok函数以后的调用时的需用NULL来替换s.

3.形参s(要分割的字符串)对应的变量应用char s[]=”….”形式,而不能用char *s=”….”形式

#include <stdio.h>

#include <string.h>
void main()
{
char buf[]=”Golden Global View”;
char* token = strtok( buf, ” “);
while( token != NULL )
{
printf( ”%s “, token );
token = strtok( NULL, ” “);
}
return 0;
}

其结果为:

Golden
Global
View


其中第3条不知为何,我的理解是char *s 中的s保存的是字符串的首地址,它在内存中所分配的内存是连续的,但是超过字符串的长度后,其内存中的内容不可知;而char s[],它在内存中的分配也是连续的,但是超过字符串的长度后,其内存中的内容全部为'/0'。

例如

#include <iostream>
using namespace std;

int main()
{
char *temp = "hewei";
char Parms[6] = "hewei";
int len = strlen(temp);
int Temp_len = strlen(Parms);
for(int i = 0; i< strlen(temp); i++)
{
cout << temp[i] << " " << Parms[i] << endl;
}
return 0;
}

其调试结果:
+ temp 0x00417800 "hewei" char *
Parms[8] -52 char
+ &Parms[0] 0x0012ff4c "hewei" char *
+ &Parms[1] 0x0012ff4d "ewei" char *
+ &Parms[2] 0x0012ff4e "wei" char *
+ &Parms[3] 0x0012ff4f "ei" char *
+ &Parms[4] 0x0012ff50 "i" char *
+ &Parms[5] 0x0012ff51 "" char *
+ &Parms[6] 0x0012ff52 "烫烫烫烫烫" char *
+ &temp[3] 0x00417803 "ei" char *
+ &temp[4] 0x00417804 "i" char *
+ &temp[5] 0x00417805 "" char *
+ &temp[6] 0x00417806 "" char *
+ &temp[7] 0x00417807 "" char *
+ &temp[8] 0x00417808 "" char *
temp[6] 0 char
temp[7] 0 char
+ temp 0x00417800 "hewei" char *

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ strtok的用法 的相关文章

  • strtok函数

    头文件 string h 函数声明 char strtok xff08 char str xff0c const sep xff09 返回值 分隔符之前字符串的首地址 用法 sep的参数是个字符串 xff0c 定义了用作分隔符的字符集合st
  • C++ strtok的用法

    size 61 large align 61 center strtok的用法 align size 函数原型 xff1a char strtok char s char delim 函数功能 xff1a 把字符串s按照字符串delim进行
  • c语言中strtok函数_在C语言中使用strtok()和strtok_r()函数

    c语言中strtok函数 In this article we ll take a look at using the strtok and strtok r functions in C 在本文中 xff0c 我们将介绍如何在C语言中使用
  • C语言:strtok()的用法。

    char strtok char str const char sep 1 sep参数是个字符串 xff0c 定义了用作分隔符的字符集合 xff1b 2 第一个参数指定一个字符串 xff0c 它包含了0个或者多个由sep字符串中一个或者多个
  • 关于strtok的使用

    1功能 xff1a strtok是一个比较特殊的 xff0c 用于切割字符串的函数 2 使用我们先来看一下strtok的使用 strtok C 43 43 Reference char strtok xff08 char str xff0c
  • C语言字符串处理函数 strtok() 和 atoi() 的使用

    字符串函数 xff08 String processing function xff09 也叫字符串处理函数 xff0c 指的是编程语言中用来进行字符串处理的函数 本文主要介绍 C语言中符串处理函数 strtok 和atoi 的区别使用方法
  • matlab学习(1)strsplit与strtok

    strsplit函数用法 xff1a lt 1 gt 默认使用空格符分割 返回一个cell数组 lt 2 gt 也可以指定第二个参数进行分割 lt 3 gt 第二个参数也可以时包含多个分隔符的元胞数组 lt 4 gt strsplit还可以
  • 字符串分割函数--strtok与strsep

    在 c 中 字符串分割函数主要有两种 一是strtok函数 另一个就是strsep函数 下面我们对这两个函数作一个详细解释说明 1 strtok 原形 char strtok char str const char delim 功能 分解字
  • 从 strtok() 获取零长度字符串

    我有一个 CSV 文件 其中包含以下数据 value name test etc 我试图通过使用来分割strtok string 但是 该文件可以包含零长度数据 如下所示 value test etc which strtok 跳过 有什么
  • 意外的 strtok() 行为

    我正在尝试使用 strtok 计算文件中的单词数 code c WHAT Use strtok to count the number of words in a file include
  • 具有连续分隔符的 strtok_s 行为

    我正在并行解析 3 个值 这些值用特定的分隔符分隔 token1 strtok s str1 separator nextToken1 token2 strtok s str2 separator nextToken2 token3 str
  • C - strtok(...) 上出现意外的分段错误

    我正在使用库的 strtok 它似乎工作正常 直到结束条件 它导致分段错误和程序崩溃 API 声称 当找不到更多标记时 strtok 将输出 NULL 这意味着 我认为 您必须捕获此 NULL 才能终止使用 strtok 运行的任何循环 我
  • 罢工行为

    int main char str kk 12 23 4 3434 3 33 char valarr int count 0 valarr strtok str while valarr 0 valarr strtok NULL count
  • strtok 未处理的异常;写入位置访问冲突

    include
  • strtok调用时出现问题

    我有一个像这样使用 strtok 的函数 void f1 char name char tmp tmp strtok names while tmp tmp strtok NULL 我有一个电话 f1 abc def 问题是在第一次调用中
  • 为什么应该使用 strtok(line, "\n") **不** 来去除 fgets() 留下的换行符

    fgets 是读取一行输入的安全函数 但它存储new line byte n 如果适合 则从数组中的文件中读取 在许多 如果不是大多数 情况下 这new line在进一步处理该行内容之前必须将其删除 可以使用几种简单的方法来实现这一点 但我
  • C 将输入文本文件解析为单词

    我正在尝试将输入文件 包含具有多行和分隔符的文本文档 即 解析为单词 我的函数 分割函数 是 int splitInput fp int i 0 char line 255 char array 5000 int x while fgets
  • 在C中提取两个特定字符串之间的字符串

    如何提取两个指定字符串之间的字符串 例如 有没有一种简单的方法可以使用它strtok 或者更简单的东西 编辑 两个指定的字符串是提取的字符串是Extract this 使用搜索第一个子字符串strstr 如果找到 则保存子字符串的数组索引
  • 如何在 Teradata 14 中对子字符串进行分组?

    我有下表天睿14 我不允许自己编写过程和函数 但我可以使用strtok strtok split to table etc id property 1 1234X Yel 2225Y Red 1234X Gre 2 3 1222Y Pin
  • 使用 strtok 在 C 中解析字符串

    我有这个小源代码 用于测试类似于变量的字符串的解析string我需要在其他项目中使用 include

随机推荐

  • MQ-2烟雾传感器的使用

    一 MQ 2烟雾传感器简介 MQ 2 烟雾传感器采用在清洁空气中电导率较低的二氧化锡 SnO2 xff0c 属于表面离子式N型半导体 当MQ 2烟雾传感器在200到300摄氏度环境时 xff0c 二氧化锡吸附空气中的氧 xff0c 形成氧的
  • HC-SR04超声波测距模块介绍

    超声波简介 超声波是由机械振动产生的 可在不同介质中以不同的速度传播 具有定向性好 能量集中 传输过程中衰减较小 反射能力较强等优点 超声波传感器可广泛应用于非接触式检测方法 它不受光线 被测物颜色等影响 对恶劣的工作环境具有一定的适应能力
  • 液晶12864显示图片

    液晶12864简介 12864是128 64点阵液晶模块的点阵数简称 基本参数 1 低电源电压 xff08 VDD 43 3 0 xff5e 43 5 5V xff09 2 显示分辨率 128 64 点 3 内置汉字字库 xff0c 提供8
  • 液晶12864显示字符

    液晶12864简介 12864是128 64点阵液晶模块的点阵数简称 基本参数 1 低电源电压 xff08 VDD 43 3 0 xff5e 43 5 5V xff09 2 显示分辨率 128 64点 3 内置汉字字库 xff0c 提供81
  • Bash:command:未找到命令

    前言 在Linux系统中 xff0c 经常会遇到这样的问题 xff1a bash xff1a command xff1a 未找到命令 这个真的很烧脑 xff0c 遇到的次数多 xff0c 在网上也查了好多 xff0c 答案五花八门 xff0
  • S32K148----SDK笔记----CAN收发

    文章目录 前言建立工程ProcessorExpert配置发送CAN报文CAN接收中断工程代码微信公众号 前言 S32K148自带3路CAN 官方的SDK给了can pal的例程 本文更基础一点 直接用flexcan组件相关的函数 CANFD
  • TC397开发板KIT_A2G_TC397_5V_TFT简介

    开发板简介 照片资料调试资源供电扩展CAN 用的开发板是KIT A2G TC397 5V TFT 其实更推荐KIT A2G TC397 3V3 TFT 售价 1 670 59 照片 正面 背面 5V的板子和3 3V的板子主要是下面几个器件不
  • AURIX TC397 Flash编程

    目录 Flash编程基础知识Flash Programming微信公众号 Flash编程基础知识 参考 Flash Programming 1 for KIT AURIX TC397 TFT 本例展示了如何烧写PFLASH Program
  • 周立功USBCAN-II的Python调用

    目录 USBCAN II环境配置CAN收发运行zcanpro微信公众号 USBCAN II USBCAN II 或者叫USBCAN2是周立功 致远电子 比较经典的USB接口的CAN卡 有两路标准CAN 最高支持到1M波特率 单用USB就可以
  • 拒绝丧偶式育儿,正确「养育男孩」

    前言 如何养育男孩 xff1f 当写下这几个字的时候 xff0c 我已在心里默念了好几遍 xff0c 不知道该如何回答 在2年前的某个凌晨2点18分 xff0c 第一声婴儿地啼哭 xff0c 护士告诉我 是个男孩 开始 xff0c 我就买了
  • Pandoc 多Markdown转单PDF

    文章目录 Pandoc 简介Pandoc 安装pandoc latex template字体安装Powershell 脚本Ubuntu PandocMarkdown 合并 Pandoc 简介 Pandoc 免费的文档转换器 支持常见的各种文
  • SocketCAN 命名空间 VCAN VXCAN CANGW 举例

    文章目录 NAMESPACESocketCAN最新 can utils 安装VCAN 举例VXCAN 举例CANGW 举例参考 NAMESPACE namespaces 命名空间 将全局系统资源包装在抽象中 使命名空间中的进程看起来拥有自己
  • slcan 协议 脚本 测试

    文章目录 slcan 协议kernel slcancan utils slcanptycan utils slcandcan utils slcan attachpython slcan slcan 协议 slcan 基于文本 ASCII
  • Notepad++直接编译运行Java

    安装Notepad 43 43 和JDK xff08 略 xff09 xff1b Notepad 43 43 的菜单栏 xff1a 插件 gt Plugin Manager gt Show Plugin Manager xff0c Avai
  • 几款自带编码器的直流电机

    不少小伙伴做两轮自平衡车或者机器人或者各种比赛时 xff0c 经常需要用到直流电机带编码器 xff0c 有的自己可以做外置的编码器 xff0c 但是否有自带编码器或码盘的直流电机 xff1f 答案是肯定的 xff0c 这里就推荐几款带编码器
  • 四大编辑器 -- Sublime, Atom, VS Code和Notepad++

    主要介绍3个跨平台的 Sublime Atom VS Code 一个Windows的 Notepad 43 43 Sublime Text 官网 https www sublimetext com Sublime Text is a sop
  • AD绘制四层板

    原理图导入PCB后 默认是双层板 可以Design gt Layer Stack Manager 点击Top Layer 然后点击Add Plane 负片层 电脑上在此层走线表示把铜挖空 这里把一整层都当作GND 非GND的过孔打到这一层
  • 群晖(Synology)配置 NAS + 软路由

    文章目录 背景结论软路由配置 背景 老板上周兴致勃勃的找到我 说Macbook存储不够用了 帮他找个存东西的 不是移动硬盘 我也很懵逼 我搞活动捡便宜充的百度网盘超级会员 觉得自己很是尾巴翘上天的土豪了 但想到老板的身价 又不太清楚macb
  • 各种类型的Writable

    各种类型的Writable xff08 Text ByteWritable NullWritable ObjectWritable GenericWritable ArrayWritable MapWritable SortedMapWri
  • C++ strtok的用法

    size 61 large align 61 center strtok的用法 align size 函数原型 xff1a char strtok char s char delim 函数功能 xff1a 把字符串s按照字符串delim进行