首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言字符串分割

大家好,又见面了,我是全栈君 说起来很有意思,自认为对C语言理解得还是比较深刻。但居然到今天才知道有个strtok函数,试用了一下突然感慨以前做了多少重复劳动。...每次需要解析配置文件,每次需要分割字符串,居然都是自己去分割字符串,既累人又容易出错。感概技术学得不够全面啊!...,在以后文本处理中,会解决很多问题。...看来我有必要系统学习下C库函数,而不仅仅是死扎在语法和一些算法技巧上面。这样在平常工作中才能事半功倍。...使用这个函数,分割字符串就更加方便了,例如下面待分割字符串: 12|2345|asld|alsfalskd 只要读取待处理数据,然后调用四次strtok就能够解析出每行值,以前我一般不是自己解析就是用

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言字符串函数

    上面说strlen是用来求字符串长度,而它统计是\0之前出现字符个数,也就是说字符串结束标志是\0。...有三种情况,像上图那种,字符串2中q比字符串1中c大,返回就是一个小于0数字。 第二种,字符串2比字符串小,返回就是一个大于0数字。 第三种,字符串2和字符串相等,返回就是0。...首先传两个字符串不能为空,再逐一遍历两个字符串相同位置字符进行比较。...4个字节,发现q比c字典序大,返回一个小于0数 8. strstr使用和模拟实现 8.1 strstr使用 这个函数是用来干什么呢?...要学习strerror函数,就得先了解errno: 当库函数调用失败时候,会讲错误码记录到errno这个变量中 errno是一个C语言全局变量 错误码就是编译器记录,每一个数字对应不同错误

    15010

    C语言字符串IO

    char *name; scanf("%s",name); 分配内存方法: 1.声明时显式指明数组大小。 char name[80]; 2.使用C语言库函数来分配内存。...使用 gets函数读取整行输入,直到遇到换行符,然后丢弃换行符(与fgets函数区分),存储其他字符,并在这些字符后面加上一个空字符使其成为一个C字符串。...因此C11委员会在标准中废除了gets()函数。 gets()函数替代品 过去常使用fgets函数来代替gets函数,在输入处理方面与gets函数略有不同。...C11标准中新增gets_s函数也可以代替gets函数,该函数与gets函数很接近,而且可以替换现有代码中gets函数。...gets_s()函数 C11新增gets_s函数和fgets函数类型,用一个参数限制读入字符数。

    4.6K10

    C语言字符串常用操作

    C语言是一种非常流行编程语言,它支持各种数据类型,包括整数、浮点数、字符和字符串等。在 C语言中,字符串是一种特殊数据类型,它由一系列字符组成,以\0字符结尾。...本文将介绍 C语言字符串相关知识,包括字符串定义、初始化、赋值、输入输出、比较、拼接、查找和替换等。 一、字符串定义和初始化 在 C语言中,字符串可以使用字符数组来定义和表示。...二、字符串赋值 在 C语言中,我们可以使用 strcpy 函数来将一个字符串赋值给另一个字符串。...四、字符串比较 在 C语言中,我们可以使用 strcmp 函数来比较两个字符串大小。...六、字符串查找和替换 在 C语言中,我们可以使用 strchr 函数来查找一个字符在字符串中第一次出现位置。

    34720

    C语言 | 复制字符串

    例69:C语言编写一个程序,将字符数组str2中全部字符复制到字符数组str1中,要求不使用strcpy函数。 解析:复制时「\0」也要复制过去,「\0」后面的字符不复制 。...[80];//定义字符数组    int i;//定义整型变量    printf("输入要复制字符串:");//提示语句    scanf("%s",str2);//输入字符串    for(i=0...    return 0;//主函数返回值为0  } 编译运行结果如下: 输入要复制字符串:love 复制后字符串是:love -------------------------------- Process...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去动力,跪谢各位父老乡亲啦~ C语言 | 将s2中字符复制到s1中,不用strcpy 更多案例可以go公众号:C...语言入门到精通

    3.2K64

    C语言字符串操作

    strtok 定义:char *strtok(char s[], const char *delim); s为要分解字符串 delim为分隔符字符串 当strtok()在参数s字符串中发现参数delim...在第一次调用时,strtok()必需给予参数s字符串,往后调用则将参数s设置成NULL。...4.png 注意: 分割字符串不能为常量 第一次调用需要传入需要分割字符串,后面就传入NULL。...如果未找到分割字符串,则范围当前字符串指针 所有出现分割字符串地方都会被过滤, 如上面代码 dede strtok会破坏被分解字符串,调用前后不一致。...strchr 定义:char strchr(const char _Str,char _Val) 回首次出现_Val位置指针,返回地址是被查找字符串指针开始第一个与Val相同字符指针,如果Str

    2.9K30

    C语言字符串详解

    字符串是一种非常重要数据类型,但是C语言不存在显式字符串类型,C语言字符串都以字符串常量形式出现或存储在字符数组中。...一、字符串常量和字符数组 1.1、什么是字符串常量 C 语言虽然没有字符串类型,但是 C语言提是存在字符串这个概念,也就是字符串常量:以 NUL 字节结尾 0 个或多个字符组成序列。...(在 C 语言中,常用转义字符 \0 来表示 NUL) 1.2、字符串常量与指针 字符串常量与指针关系密切,因为字符串常量值,实际上表示是存储这些字符内存空间地址,更准确地说是字符串常量中第 1...因此,在 C 语言中是不能直接进行字符串赋值(因为没有字符串类型嘛)。...五、字符串比较 C 语言中使用库函数 strcmp 来进行字符串比较。

    3.5K88

    C语言 | 求字符串长度

    例78:C语言写一个函数,求一个字符串长度,在main函数中输入字符串,并输出其长度,要求用指针。...解题思路:求字符串长度,还要求用指针,读者首先应该想一下不用指针是否可以,求字符串长度需要判断字符串结束标志。...C语言源代码演示: #include//头文件  int main()//主函数  {   int sum_Length(char *point);//函数声明    int len;...//定义整型变量    char str[20];//定义字符数组    printf("请输入要求长度字符串:");//提示语句    scanf("%s",str);//因为str是数组,不用加取地址符...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去动力,跪谢各位父老乡亲啦~ C语言学习路线     C语言开发工具 跟多案例可以go公众号:C语言入门到精通

    3.3K32

    C语言字符串函数

    ✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 前面我们学习了4个函数——strlen\strcpy\strcat...文章目录 长度受限制字符串函数 strncpy strncat strncmp 字符串查找 strstr strstr模拟实现 strtok 错误信息报告 strerror 字符分类函数 长度受限制字符串函数...拷贝num个字符从源字符串到目标空间。 如果源字符串长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。...(注: strtok函数会改变被操作字符串,所以在使用strtok函数切分字符串一般都是临时拷贝内容 并且可修改。)...s\n", strerror(3)); printf("%s\n", strerror(4)); printf("%s\n", strerror(5)); } 这些并不需要我们记住,error-C语言设置一个全局错误码存放变量

    3.6K20

    C语言字符串指针

    http://c.biancheng.net 除了字符数组,C语言还支持另外一种表示字符串方法,就是直接使用一个指针指向字符串,例如: char *str = "http://c.biancheng.net..."; 或者: char *str; str = "http://c.biancheng.net"; 字符串所有字符在内存中是连续排列,str 指向字符串第 0 个字符;我们通常将第 0 个字符地址称为字符串首地址...全局数据区和栈区字符串(也包括其他数据)有读取和写入权限,而常量区字符串(也包括其他数据)只有读取权限,没有写入权限。...关于全局数据区、栈区、常量区以及其他内存分区,我们将在《C语言内存精讲》专题中详细讲解,相信你必将有所顿悟,从根本上理解C语言。...最后我们来总结一下,C语言有两种表示字符串方法,一种是字符数组,另一种是字符串常量,它们在内存中存储位置不同,使得字符数组可以读取和修改,而字符串常量只能读取不能修改。

    6.1K20

    C语言字符串常量

    C语言字符串常量 一.字符串常量声明 char *p = "hello";//指针直接往上戳 一个字符串常量为什么会给一个指针赋值? ...字符串常量是一个表达式,既然使表达式就会有值,字符串常量值是该字符串第一个字母首地址 同一个字符串常量,它们值(地址)相同 #include ...,输出结果却一样,这就说明多次使用同样内容字符串常量,在内存中,都只保存一次该字符串常量。...结论:字符串本身是有值,就是第一个字符地址。...2.如果要修改字符串值,我们只能使用字符数组形式来存储字符串,可以这样声明:char str[] = "hello";,这样就可以修改了,它两本质上不同是存储位置不同。

    5.6K20

    C语言字符串详解

    用%s输出时,要注意是输出字符串实际长度那些字符,而不是输出定义时字符数组长度。...printf("%c",st[i]); } 输入:I love this game 第二种方法是用%c读入,但是要注意范围。...字符串数组与指针 通过前面的知识,我们知道数组名表示是这个数组首地址,而指针变量是可以用来保存地址。 实例:程序功能:把一个字符串数取出来,构成一个整数。...#include "stdio.h" void main() { static char c[]="qq2009\nxulei"; puts(c); } 输出结果: qq2009 xulei 遇到\...可以看出当输入字符串中含有空格时,输出仍为全部字符串。说明gets函数并不以空格作为字符串输入结束标志, 而只以回车作为输入结束。这是与scanf函数不同

    2.5K20

    C语言字符串分割

    大家好,又见面了,我是你们朋友全栈君。 在C语言中,内置函数库中除了可以用strtok()来对字符串进行分割之外,还可以用sscannf()对字符串进行分割。...sscanf(buf, "%s %s %d", a, b, &c); printf("%s\n%s\n%d\n", a, b, c); return 0; } sscanf()第一个参数是要分割字符串...,第二个参数是格式化,后面的参数是分割之后字符串存储位置,上述程序运行之后 a = hello b = world c = 133 用sscanf()分割字符串的话,只能以空格分割字符串 sscanf...相对是字符串格式化输入,将buf中字符串按照sscanf第二个参数格式输入后面的参数中,需要说明是程序中c类型也可以定义为char类型数组,第二个参数也要跟着改变,如 char a[10]...< 3; ++i) { printf("%s\n", buf[i]); } return 0; } 上面的程序会打印 hello world 123 用strtok分割出来字符串都是字符串类型

    3.4K10

    C语言字符串处理

    字符串字面量) 如何存储字符串字面量 从本质上而言,C语言字符串字面量作为字符数组来处理。...当C语言编译器在程序中遇到长度为n字符串字面量时,它会为字符串字面量分配长度为n+1内存空间,在末尾增加一个额外字符——空字符(\0)。...字符串字面量操作 通常情况下可以在任何C语言允许使用 char * 指针地方使用字符串字面量。...•字符串变量   一些编程语言为声明字符串提供了特殊 string 类型。C语言采取了不同方式:只要保证字符串是以空字符串结尾,任何一维字符数组都可以用来存储字符串。...14";date2: | J | u |  n | e |   | 1 | 4 | \0 | \0 | 大体上来说,这种行为与C语言处理数组初始化方法一致。

    1.1K30
    领券