问题描述:

原始数组:char str[80] = "This is - aa bb - cc - dd";

新定义的数组:     char newstr[80]=  {0};

分割符号:    const char s[2] = "-";

1、把原始数组中的字符串str,按照分割符号“-”,拆分后,再重组,放入新定义的数组newstr中:

即:把 str , 按照“-”符号规则 分割,重组后放入newstr

#include <string.h>
#include <stdio.h>
int main()
{char str[80] = "This is - aa bb - cc - dd";const char s[2] = "-";printf("str=%s\n",str);char *token = (strtok(str,s));char cont[80]=  {0};char newstr[80]=  {0};while(token){sprintf(cont,"%s",token);printf("count=%s\n",token);token = strtok(NULL,s);strcat(newstr,cont);}printf("newstr=%s\n",newstr);return 0;
}
执行结果
str=This is - aa bb - cc - dd
count=This is 
count= aa bb 
count= cc 
count= dd
newstr=This is  aa bb  cc  dd

2、把原始数组中的字符串str,按照分割符号“-”,拆分后,再重组,放入原始的数组str中:

即:把 str , 按照“-”符号规则 分割,重组后放入str

#include <string.h>
#include <stdio.h>
int main()
{char str[80] = "This is - aa bb - cc - dd";const char s[2] = "-";char cont[80]=  {0};char ss[80]=  {0};char *token = (strtok(str,s));while(token){sprintf(cont,"%s",token);printf("count = %s\n",token);token = strtok(NULL,s);strcat(ss,cont);}printf("ss = %s\n",ss);printf("str = %s\n",str);memset(str,0,strlen(str));//strcat(str,ss);   sprintf(str,"%s",ss); //或者printf("after strcat str = %s\n",str);return 0;
}

执行结果

count = This is 
count =  aa bb 
count =  cc 
count =  dd
ss = This is  aa bb  cc  dd
str = This is 
after strcat str = This is  aa bb  cc  dd

3、分割字符串的两种方式

strtok() :

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

例如:

#include<stdio.h>#include<string.h>int main(void){char buf[]="hello@boy@this@is@heima";char*temp = strtok(buf,"@");while(temp){printf("%s ",temp);temp = strtok(NULL,"@");}return0;}

执行结果:

hello

boy

this

is

heima

#include<stdio.h>#include<string.h>int main(void){char buf[]="hello@boy@this@is@heima";char*temp = strtok(buf,"@");printf("%s ",temp);while((temp = strtok(NULL,"@"))){printf("%s ",temp);}return0;}

执行结果:

hello

boy

this

is

heima

函数 —— strtok() 例如:按照字符拆分字符串,放入新定义的数组中;按照字符拆分字符串,放入原先的数组中相关推荐

  1. 每天一道LeetCode-----在字符串s中找到最短的包含字符串t中所有字符的子串,子串中字符顺序无要求且可以有其他字符

    Minimum Window Substring 原题链接Minimum Window Substring 要求在源字符串s中找到长度最短的子串,这个子串包含目标字符串t中的所有字符,字符顺序没有要求 ...

  2. 【 C 】高级字符串查找之查找标记(token)函数 strtok介绍

    一个字符串常常包含几个单独的部分,它们彼此被分隔开来.每次为了处理这些部分,你首先必须把它们从字符串中抽取出来. 这个任务有#include<string.h>中的strtok函数完成.( ...

  3. 【STM32】利用 C 语言 strchar() 函数查找字符串中指定字符的位置

    文章目录 字符串中查找字符 strchr() 描述 声明 参数 返回值 字符串分割 strtok() 描述 声明 参数 返回值 自己的函数 字符串中查找字符 strchr() 描述 C 库函数 cha ...

  4. 【C语言】字符串函数strtok 按照指定字符串分割

    C语言字符串函数 strtok() 函数原型 char *strtok(char *str,const char *delimiters); 参数 str,待分割的字符串 delimiters,分隔符 ...

  5. c,c++中字符串处理函数strtok,strstr,strchr,strsub

    http://blog.csdn.net/wangqing_12345/article/details/51760220 1,字符串切割函数 函数原型:char *strtok(char *s, ch ...

  6. 字符串切割函数strtok、strtok_s、strtok_r的区别

    strtok函数 头文件:#include <string.h> 函数原型:char * strtok (char *str, const char * delimiters); 参数:s ...

  7. C语言中的字符函数和字符串函数

    目录 前言 1.常用函数介绍 1.1 strlen 1.2 stycpy 1.3 strcat 1.4 strcmp 1.5 strncpy 1.6 strncat 1.7 strncmp 1.8 s ...

  8. 字符串分割函数strtok和strsep使用注意事项

    转载自 https://blog.csdn.net/astrotycoon/article/details/50813959 为什么写本文 最近工作中经常需要解析字符串,并且这些字符串都有一个共同的特 ...

  9. pandas使用pad函数向dataframe特定数据列的每个字符串添加后置(后缀)补齐字符或者字符串、向所有字符串的右侧填充、直到宽度达到指定要求(right padding)

    pandas使用pad函数向dataframe特定数据列的每个字符串添加后置(后缀)补齐字符或者字符串.向所有字符串的右侧填充.直到宽度达到指定要求(right padding) 目录

最新文章

  1. Laplacian函数
  2. 物体掉落速度_重3吨的巨型“手环”掉落高速路,车辆纷纷刹车躲避
  3. BRCM5.02编译一 : 缺少工具链路
  4. 高并发编程-线程通信_使用wait和notify进行线程间的通信
  5. HTML 5 Web Socket:下一次Web通信革命揭幕,互联网营销
  6. Vue003_class 与style 绑定
  7. 数据库管理系统与数据库系统
  8. oracle-SQL-case when 改用 DECODE
  9. Ubuntu16.04下安装cuda和cudnn的三种方法(亲测全部有效)
  10. [Web 前端] CSS篇之 4. position 和 display 的取值和各自的意思和用法
  11. Linux裸设备管理详解--
  12. 【渝粤教育】国家开放大学2019年春季 1087数学分析专题研究 参考试题
  13. Seaborn可视化 -- 分类统计图seaborn.catplot
  14. 《给忙碌者的天体物理学》pdf、mobi、epub下载
  15. Android 自定义view完全解析--带你通透了解自定义view
  16. 刚去公司,发现node版本过高,如何将node版本降低?
  17. 兔将十年大作《赤狐书生》特效解析:青蛙精篇
  18. iPhone SDK 包含哪些东西?
  19. TP全行业小程序运营管理系统源码+一键生成小程序
  20. Mysql教程(五)---SQL正则表达式

热门文章

  1. QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connect
  2. getsockname和getpeername
  3. 软件测试第二次作业:JUNIT单元测试方法
  4. RT-Thread 学习笔记(五)—— RTGUI代码解读
  5. elasticsearch的映射(mapping)和分析(analysis)
  6. PhpStorm 默认快捷键
  7. Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)
  8. BlackBerry 开发笔记入门 控件简介
  9. LINUX 硬链接与软链接的区别
  10. threejs加载obj模型_Vulkan编程指南(章节31-载入模型)