C语言sscanf,strstr和strtok函数用于字符提取分割

这篇具有很好参考价值的文章主要介绍了C语言sscanf,strstr和strtok函数用于字符提取分割。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

sscanf函数(提取字符):

#include <stdio.h>
int sscanf(const char *str, const char *format,[ argument ]...);

str:    待解析的字符串;
format: 字符串格式描述;
argument:是一序列数目不定的指针参数,存储解析后的数据.
返回值:成功转换的数据的个数

从输入字符串的左边开始往右匹配,遇到不符合匹配规则时则结束匹配。注意是遇到不符合描述规则时就结束,而不是从整个字符串中提取出符合规则的部分。

字符串格式描述说明:

* 表示匹配但是不显示/不读入;
^表示非,除什么之外;
[]表示一个字符集。
%c匹配单字符,
%s匹配字符串,
%d匹配十进制数字,
%f匹配浮点数等,
%[a-zA-Z]表示匹配任意字母,相应的可以改成只匹配大写或小写字母,
%[0-9]表示匹配任意数字,
%[1aA]表示匹配1,a,A中的任意一个。

代码示例:

整数转换//2022届08级09班
int Year,Grade, class;
int ret = sscanf("20220809", "%04d%02d%02d", &year, &Grade, &day);
printf("ret=%d, year=%d, Grade=%d, class%d/n", ret, year, Grade, class);

mac地址//00-23-63-9E-7F-33

int a,b,c,d,e,f;
int ret = sscanf("mac:00-23-63-9E-7F-33", "%*[^:]-%[^-]-%[^-]-%[^-]-%[^-]-%[^-]-%[^-]", &a, &b, &c,&d,&e,&f);

"%04d%02d%02d"是用来解析字符串的格式,%表示格式转换的开始,d表示转换为一个整数,04作为d的修饰,表示这是一个长度为4位的整数,不足4位时以0补齐。

例子返回结果等于3,表示有3个数据成功转换,转换成功数目同时取决于被解析的字符串以及其转换格式,如果我们把例子中的格式改为"%04d%02d",那么sscanf将只返回2,class的数值不会被sscanf更改。

 =====================================================

strstr函数(字符提取)

char *strstr( const char *str1, const char *str2 );

参数:
1.str1:要扫描的 C 字符串
2.str2:包含要匹配的字符序列的 C 字符串。
返回值:
指向 str1 中指定的整个字符序列在 str2 中首次出现的指针,如果序列在 str1 中不存在,则为 null 指针。

返回值:指向 str2 中第一次出现的 str1 的指针,如果 str2 不是 str1
的一部分,则返回一个空指针。匹配过程不包括终止空字符,但它到此为止。

代码示例:

​#include <stdio.h>
#include <string.h>
int main()
{
	char str1[] = { "07996KTFaabcskay" };
	char str2[] = { "abc" };
	char* ret = strstr(str1, str2);
	if (*ret != NULL)
		printf("%s", ret); 
	else
		printf("NOT FIND!");
	return 0;
}

​//打印出abcskay

=======================================================

strtok函数(字符分割)

char *strtok(char *str, const char *delim)
参数
str:要被分解的字符串
delim:用作分隔符的字符(可以是一个,也可以是集合)
返回值:该函数返回被分解的第一个子字符串,若无可检索的字符串,则返回空指针

代码示例:文章来源地址https://www.toymoban.com/news/detail-792799.html

 char str[80] = "08-F9-96-13-65-9P";
   const char s[2] = "-";   //字符串里可以是一个分隔符,也可以是分隔符的集合
   char *token;
   
   /* 获取第一个子字符串 */
   token = strtok(str, s);
     printf( "%s\n", token );//打印出08
   
   /* 继续获取其他的子字符串 */
   while( token != NULL ) {
      printf( "%s\n", token );
    
      token = strtok(NULL, s);
   }

到了这里,关于C语言sscanf,strstr和strtok函数用于字符提取分割的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • c语言-库函数strstr()、strtok()、strerror()介绍

    本篇文章介绍c语言库函数strstr()、strtok()、strerror()的使用。 strstr()实现的是查找子字符串。 下面是cplusplus网站关于这个库函数的介绍以及使用。 说明: 参数str1:被扫描的字符串 参数str2:需要查找的子字符串 返回值: 返回值不为NULL,说明在str1存在str2,返回str1第一次出现s

    2024年01月17日
    浏览(64)
  • C语言——字符函数和字符串函数(三)【strtok,strerror,perror】

    📝前言: 上一篇文章C语言——字符函数和字符串函数(二)对字符函数和字符串函数 strstr , strcmp和strncmp 进行了一定的讲解 这篇文章主要讲解以下函数的用法: 1, strtok 2, strerror 3, perror 🎬个人简介:努力学习ing 📋个人专栏:C语言入门基础 🎀CSDN主页 愚润求学 🌄每

    2024年02月04日
    浏览(33)
  • C语言 字符串解析strchr/strrchr/strtok//strtok_r函数使用

    在程序中,解析用户输入的参数(命令行参数)是很常见的操作,本文将讲解C语言中常见的一些解析字符串函数使用方法。 1 strchr 1.1 描述 strchr() 用于查找字符串中的一个字符,并返回该字符在字符串中第一次出现的位置。其原型定义在头文件 string.h 中。 char *strchr(const ch

    2024年02月03日
    浏览(39)
  • C语言中常用的字符串函数(strlen、sizeof、sscanf、sprintf、strcpy)

      strlen即为string length,顾名思义该函数是用来求字符串长度的。在介绍strlen函数之前,我们要先介绍一下\\\"\\0\\\"这个转义字符。任何一个字符串后面都会隐藏一个\\\"\\0\\\",该转义字符是字符串结束的标志,所以我们在使用strlen函数求字符串长度时,遇到\\\"\\0\\\"时停止读取,此时\\\"\\0\\\"前的

    2024年01月18日
    浏览(51)
  • 【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现

    🔍个人主页 : @啊森要自信的主页 ✏️ 真正相信奇迹的家伙,本身和奇迹一样了不起啊! 欢迎大家关注🔍点赞👍收藏⭐️留言📝希望看完我的文章对你有小小的帮助,如有错误,可以指出,让我们一起探讨学习交流,一起加油鸭。 记上节,我们学了字符串 strlen 的使用和

    2024年02月05日
    浏览(45)
  • 字符串处理函数:sscanf 的用法

    前言: 一直对于一些日期字符串中数字的提取比较头疼,现看到 sscanf 对于字符串中的内容提取较方便,学习记录如下。方便以后查询。 sscanf() :将 C 语言字符串中数据按 指定的格式 将数据存储在对应的参数中。 成功则返回参数数目,失败则返回-1,错误原因存于errno中。

    2024年02月12日
    浏览(41)
  • C语言sscanf函数学习

    sscanf()与scanf()相比,scanf()以键盘(stdin)为输入源,sscanf()以第一个参数的固定字符串为输入源; sscanf()的头文件是 #include stdio.h; 函数原型:  int sscanf (char *str, char * format [, argument, ...]); 函数功能:用于从字符串中读取指定格式的数据 函数参数:参数str为要读取数据的字符串

    2024年02月10日
    浏览(47)
  • c语言中的sscanf函数

    sscanf函数是C语言中的一个格式化输入函数,用于从字符串中按指定格式提取数据。它的原型如下: 在这个函数中,\\\"str\\\"是输入的字符串,\\\"format\\\"是格式字符串,\\\"...\\\"表示可变参数,用于接收提取的数据。 举个例子, 在上述示例中,sscanf函数被用于解析文件名字符串。下面是对

    2024年01月24日
    浏览(34)
  • C语言字符串转换double等类型(sscanf,atof,strod)

    例子: 注意: 忽略空格   例子: 注意: sscanf解析字符串时,空格通常被用作分隔符,可以用它来分隔字符串中的不同部分。 例如,以下代码将把字符串\\\"123 456\\\"中的两个整数读入a和b中,空格用作分隔符: 在这个例子中,sscanf会忽略字符串中的多余空格,并将\\\"123\\\"解析为a的

    2024年02月14日
    浏览(40)
  • c语言模拟实现strstr函数

    strstr()是string.h库里的一个函数,它的效果是传两个字符串地址,在第一个字符串中找第二个字符串。如果存在返回存在第一个字符串中关于第二个字符串的首地址。如果不存在,就返回空指针。 首先需要定义三个指针,s1,s2,p。因为两个字符串不能改变,需要重新定义三个指

    2024年02月07日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包