首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏热爱编程的证据

    模拟实现字符串函数5): strncpy

    1.函数介绍 拷贝num个字符从源字符串到目标空间。 如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个 strncpy与strcpy的作用是一样的,区别在于strncpy指定了复制字符的个数。 2.思路分析 这里多了个参数num,指定的复制字符个数,就得考虑两种情况: 1.当 源字符串长度大于num时,正常复制到num结束。 2.当源字符串长度小于num时,就得在后面追加剩余个数的‘\0’。 ret; } int main() { char str1[] = "abcdefghij"; char str2[] = "aaaa"; my_strncpy(str1+2, str2, 5)

    23110编辑于 2024-01-23
  • 来自专栏Yui编程知识

    字符串函数(5)strstr函数的使用和模拟实现

    两天没写博客了,今天更新一篇字符串函数,这个strstr函数比前几个字符串函数难一点,我尽量写详细一点。 strstr函数 strstr函数的功能 Returns a pointer to the first occurrence of str2 in str1, or a null pointer if 下面开始讲strstr函数的模拟实现。 strstr函数的模拟实现 所有的解释都放在代码里面啦,大家要认真看哦,我很认真找写欸。 不知道assert(断言)const(常量)的就看往期的字符串博客咯。 当目的字符串中的bb对应子字符串中的bb,可是一旦再次加一,两个 //字符串将不在相等,跳出第二个循环,此时cp++,再次回到一个循环,就可以完美打印出bbcd啦,其实可以给你们画图片的解释的,但是我相信大家都是很聪明的人

    45310编辑于 2024-10-15
  • 来自专栏Linux之越战越勇

    C语言进阶(九) - 字符与字符串函数 - 5 - 字符函数

    前言 处理字符有着许多的字符函数供我们使用,熟悉这些字符函数可以帮助我们快速解决一些小问题。 如果c是一个十进制数字,返回非0,否则返回0; 十进制数字可以是:0 1 2 3 4 5 6 7 8 9 1.2 例子 传入的是字符 #include <stdio.h> #include int c); 头文件<ctype.h> 点击转到cpluscplus.com官网 - isxdigit 如果是16进制数字,返回非0,否则返回0; 16进制数可以是:0 1 2 3 4 5 6 7 8 9 a b c de f a b c de f 2.2 例子 传入函数的应是十进制数字对应的字符,而不是真的十进制数字。 &c); if (isupper(c)) { printf("是大写字母\n"); } else { printf("不是大写字母\n"); } return 0; } ---- 5.

    73610编辑于 2023-04-27
  • 来自专栏老司机的技术博客

    golang学习笔记5字符串及相关函数

    字符串处理相关函数 作为一种基本数据结构,每种语言都有一些对于字符串的预定义处理函数。Go 中使用 strings 包来完成对字符串的主要操作。 该函数的第二个参数可以包含任何字符,如果你只想剔除开头或者结尾的字符串,则可以使用 TrimLeft 或者 TrimRight 来实现。 (str) 用于生成一个 Reader 并读取字符串中的内容,然后返回指向该 Reader 的指针,从其它类型读取内容的函数还有:Read() 从 []byte 中读取内容。 任何类型 T 转换为字符串总是成功的。针对从数字类型转换到字符串,Go 提供了以下函数: strconv.Itoa(i int) string 返回数字 i 所表示的字符串类型的十进制数。 针对从字符串类型转换为数字类型,Go 提供了以下函数: strconv.Atoi(s string) (i int, err error) 将字符串转换为 int 型。

    1.6K30发布于 2018-10-22
  • 来自专栏微光点亮星辰

    Oracle 与 MySQL 的差异分析(5):字符串函数

    Oracle 与 MySQL 的差异分析(5):字符串函数 1 字符串连接 1.1 Oracle select name || ‘hello’ from test; select concat(name , ‘’); MySQL 还支持按照位置替换,如下表示把 ’abcdef’ 从第二个字符开始的第三个字符替换为 ‘dd’: select insert (‘abcdef’, 2, 3, ‘dd’); 5 ,填充的字符串。 8 返回字符串重复N遍的结果 select repeat (‘abc’, 10); MySQL 特有的函数,返回字符串重复N遍的结果。 9 字符串 ASCII 比较 select strcmp (‘abc’, ‘dd’); MySQL 特有的函数,如果第一个字符串小于第二个字符串,返回-1;如果相同,返回0;如果大于,则返回1。

    1.5K22发布于 2020-04-10
  • 来自专栏学习

    【字符函数】strcpy函数字符串复制函数)+strcat函数字符串追加)+strcmp函数字符串比较)【笔记】

    1.复制函数--------------strcpy函数 函数使用 char*strcpy(char* destination, const char* source) strcpy函数用于拷贝字符串 使其变成变量可以修改 //char arr[] = "bit"; //strcpy(p, arr);//right return 0; } 模拟实现 复制到时候,函数会将被拷贝字符串的‘/ 会将源字符串中的 ‘\0’ 拷贝到目标空间。 目标空间必须足够大,以确保能存放源字符串。 目标空间必须可修改。 .模拟实现 进入函数体时先定义一个指针变量保存目标空间的起始位置,便于之后返回。 ) char *strcat( char* destination, const char* Source );  strcat函数用于追加字符串,即将一个字符串中的内容追加到另一个字符串中。 ) 1.函数使用 int strcmp(const char* str1,const char* str2) strcmp函数用于比较两个字符串内容的函数

    78810编辑于 2024-11-21
  • 来自专栏学习

    字符函数字符串函数

    (const char*str) strlen函数有几点需要注意 • 字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前⾯出现的字符个数(不包 含 '\0' ) (注: strtok函数会改变被操作的字符串,所以在使⽤strtok函数切分的字符串⼀般都是临时拷⻉的内容 并且可修改。) • strtok函数的第⼀个参数不为 NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串 中的位置。 • strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标 记。 • 如果字符串中不存在更多的标记,则返回 NULL 指针。 Operation not permitted//2 No such file or directory//3 No such process//4 Interrupted function call//5

    32500编辑于 2024-11-21
  • 来自专栏我的计算机成长

    字符函数字符串函数

    5.strtok char * strtok ( char * str, const char * sep ); sep参数是个字符串,定义了用作分隔符的字符集合 第一个参数指定一个字符串,它包含了 (注:strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容并且可修改。) strtok函数的第一个参数不为 NULL ,函数将找到str中第一个标记,strtok函数将保存它在字符串中的位置。 strtok函数的第一个参数为 NULL ,函数将在同一个字符串中被保存的位置开始,查找下一个标记。 如果字符串中不存在更多的标记,则返回 NULL 指针。   NULL ,函数将找到str中第一个标记,strtok函数将保存它在字符串中的位置。

    50810编辑于 2024-01-23
  • 字符函数字符串函数

    strcpy将arr1复制给arr2 strcat函数 将源字符串的副本追加到目标字符串。 strcpy给两个字符数组初始化,再用“安全的字符串拼接函数strncat”,将str2 的前6个字符拼接到str1尾,最终输出拼接后的完整字符串 strncmp函数 int strncmp ( const 函数返回字符串str2在字符串str1中第⼀次出现的位置 字符串的比较匹配不包含 \0 字符,以 \0 作为结束标志 #define _CRT_SECURE_NO_WARNINGS #include ⼀个或者多个分隔符分割的标 记 strtok函数找到str中的下⼀个标记,并将其用 \0 结尾,返回⼀个指向这个标记的指针(注: strtok函数会改变被操作的字符串,所以被strtok函数切分的字符串 ⼀般都是临时拷⻉的内容并且 可修改) strtok函数的第⼀个参数不为NULL 函数将找到str中第⼀个标记,strtok函数将保存它在字符串 strtok函数的第⼀个参数为NULL,函数将在同⼀个字符串中被保存的位置开始

    15610编辑于 2026-01-23
  • 来自专栏Code

    字符串函数和字符函数

    模拟实现 结果 5. strcat的使⽤和模拟实现 源字符串必须以 '\0' 结束。 • ⽬标字符串中也得有 \0 ,否则没办法知道追加从哪⾥开始。 (注: strtok函数会改变被操作的字符串,所以在使⽤strtok函数切分的字符串⼀般都是临时拷⻉的内容并且可修改。) • strtok函数的第⼀个参数不为 NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串 中的位置。 • strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标 记。 • 如果字符串中不存在更多的标记,则返回 NULL 指针。 12. strerror函数的使⽤ strerror函数可以把参数部分错误码对应的错误信息的字符串地址返回来。

    23400编辑于 2024-11-20
  • 来自专栏编程学习之路

    字符函数字符串函数

    例子如下 所以我们就多了这三个函数,有长度限制的函数,vs认为其很安全。 strncpy strncpy 如果num小于字符串长度,则直接取出其对应的字符 (后面不带\0),对应什么就拿什么。 如果超过其字符串长度,超过的部分都为\0。 这是其细节部分。 这里还要说一点,一个程序员非要找bug的话你是拦不住他的,不要故意制造一些bug。比如将9个的字符串复制到5个空间大的目标处。 strtok 这个strtok函数本质太过复杂,这里就不模拟其函数和讲它的本质。就讲下他该如何用。 当我们要分割一个字符串时,就用strtok 。 然后将后面的第一个间隔符变为\0,在我们这就是5后面的.变为\0,返回d位置的(..d处的)地址。 上面的图也是一个例子去证明其perror作用 总结 这就是字符函数字符串函数。接下来下一篇将会讲内存函数 ,敬请期待,谢谢各位的支持!

    40910编辑于 2024-04-08
  • 来自专栏小点点

    (十)单行函数——字符串函数

    字符串函数 SELECT ASCII('Abcdfsf'), CHAR_LENGTH('hello'),CHAR_LENGTH('我们'), # 返回字符数 LENGTH('hello'),LENGTH FROM DUAL;  运行结果如下所示: ---- # 字符串的索引是从1开始的! SELECT INSERT('helloworld',2,3,'aaaaa'), # 从第二个字符串开始,把往后三个替换成'aaaa' REPLACE('hello','ll','mmm') # 把字符串中的 ',4),# 重复4遍 LENGTH(SPACE(5)),# 返回5个空格 STRCMP('abc','abe')# 比较大小 FROM DUAL; 运行结果如下所示: ---- SELECT SUBSTR FIELD('mm','gg','mm','dd','mm'), # 返回第一个字符串出现的位置 FIND_IN_SET('mm','gg,mm,dd,mm,gg') # 类似,就是字符串变成逗号隔开

    57520编辑于 2022-12-12
  • 字符函数字符串函数

    1.字符分类函数 C语言中有一系列函数是专门做字符串分类的,也就是一个字符是属于什么类型的字符,这些函数的使用需要包含一个头文件ctype.h 我们介绍其中的一个函数,其余函数类似: int islower 5.strcat函数的使用和模拟实现 //函数原型 char* strcat(char* destination , const char* source); 功能:字符串追加,将source指向的源头字符串中的所有字符串都追加到 也可以用其他变量来接收这个返回值) 代码演示: int main() { char arr1[20] = { 0 }; char arr2[] = "world you"; strncpy(arr1, arr2, 5 return dest; } int main() { char arr[10] = { 0 }; char arr2[] = "hello bit"; my_strncpy(arr, arr2, 5) 返回值: 函数返回通过错误码得到的错误信息字符串的首字符的地址。

    20610编辑于 2025-12-30
  • 来自专栏绝活编程学习

    字符函数字符串函数

    前言 C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串 中或者 字符数组中。 字符串常量 适用于那些对它不做修改的字符串函数 1. (注: strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容 并且可修改。) strtok函数的第一个参数不为 NULL ,函数将找到str中第一个标记,strtok函数将保存它在字符串 中的位置。 strtok函数的第一个参数为 NULL ,函数将在同一个字符串中被保存的位置开始,查找下一个标 记。 如果字符串中不存在更多的标记,则返回 NULL 指针。 //5.函数返回值 //6.题目出自《高质量C/C++编程》书籍最后的试题部分 char* my_strcpy(char* dest, const char* src) { char* ret =

    26210编辑于 2024-12-16
  • 来自专栏c++与qt学习

    strstr函数---字符串查找函数

    #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> //strstr字符串查找函数 void findStr() { 遇到换行符会停止输入 //但会带走缓冲区的换行符 fgets(str, sizeof(str), stdin); //将结尾的\n换成\0 str[strlen(str)-1]='\0'; //字符串比较 //找到返回第一次查找到字符串的地址 //失败返回-1 char *pos=strstr(str, "so"); if (pos == NULL) { printf("字符串没有找到") ; } else { printf("找到相关字符串"); } } int main() { findStr(); return 0; } 案例:屏蔽不文明用语 1.案例需求:将不文明话语 ---指针遍历 char* p = str; while (1) { //对大sb关键字进行检测 //result接收的是查找到的字符串首地址 char* result = strstr

    1.7K10发布于 2021-03-02
  • 来自专栏转自CSDN

    字符函数字符串函数

            C语言仅提供了两个字符串转换函数: int tolower (int c); //将参数传进去的大写字母转小写 int toupper (int c); //将参数传进去的小写字母转大写 (const char * str);          字符串要以\0作为结束标志         参数主席昂的字符串必须要以\0结束         注意函数的返回值是size_t 是无符号         strstr char* strstr ( const char * str1,const char * str2);         函数返回字符串str2在字符串str1中第一次出现的位置         函数的第一个参数不为NULL,函数将找到str中第一个标记,strtok函数保存它在字符串中的位置.         strtok函数的第一个参数为NULL,函数将在同一个字符串中被保存的位置开始,查找下一个标记         如果字符串中不存在更多的标记,则返回NULL指针 int main() { char arr

    36610编辑于 2024-04-30
  • 来自专栏C/C++基础到进阶

    字符函数字符串函数

    字符函数字符串函数 字符函数分类 C语言有一些列函数用于对不同的字符进行分类,一个字符属于何种类型。以下函数都需要包含头文件 ctype.h。 str); 用于统计字符串个数,结束标志是 ’\0‘,在字符串里遇见这个字符’\0‘,就会结束函数调用,将统计的值返回。 若传递的字符串里没有以 ’\0‘结尾,那使用strlen函数就会越界访问非字符串的内容,直到碰见 ’\0‘才会停止。 由于传递的str字符串不能为空,也不期望在函数内对齐进行修改,这里使用了assert断言,及const修饰来限制了str字符串,使函数有更好的健壮性。 返回值:目标空间的起始地址,为了函数间的链式访问 会将源字符串的 ’\0‘拷贝到目标空间 源头字符串结尾必须包含 ’\0‘ 目标空间足够大,能够存放源头字符串 目标空间能够被修改

    37510编辑于 2024-11-26
  • 来自专栏C语言

    字符函数字符串函数

    ) 使用 字符分类函数 使用字符转换函数字符串相关函数: 1 strlen的使⽤和模拟实现 1.1 作用:用于对字符串长度的计算。 4.4 使用: 4.5 strcmp 的模拟实现 5. strncpy函数 /strncat函数/strncmp函数的使⽤ 5.1 strncpy函数/strncat函数/strncmp函数和strcpy 如果source 指向的字符串的⻓度⼩于num的时候,只会将字符串中到\0 的内容追加到destination指向的字符串末尾) strncat函数可作用于同一个字符串而strcat函数不行 5.4 5strstr的使⽤ 5 strstr的模拟实现 5.1 strstr的实现 过程中两个重要问题: •在匹配的过程中要记住开始匹配的位置。 本篇文章就到此结束,希望有所能帮到 读者更好的了解字符函数字符串函数

    9410编辑于 2025-12-30
  • 来自专栏c++与qt学习

    sscanf函数-----字符串拆分函数

    sscanf函数 sscanf的作用:从一个字符串中读进于指定格式相符的数据。利用它可以从字符串中取出整数、浮点数和字符串。 <stdio.h> #include<string.h> void test() { //sscanf函数 char s[200]="拨不通的电话, 遍布星辰的晚上, 拨不通的电话, 信号丢失云层上 (尽可能多的匹配) 4、%[aBc] 匹配a、B、c中一员,贪婪性 5、%[^a] 匹配非a的任意字符,贪婪性 6、%[^a-z] 表示读取除a-z以外的所有字符 1.取出指定长度字符串 #include 5.字符串中未输入数据 注意:如果[]或者[^]里面不填需要的字符,那么便不会向子符串中输入任何数据 #include<stdio.h> #include<string.h> int main() { 7.取仅包含指定字符集的字符串。(取仅包含数字和小写字母的字符串,是取得连续的字符串)。

    4.8K20发布于 2021-03-02
  • 来自专栏编程学习之路

    字符串函数的模拟实现(部分字符串函数)

     strlen函数模拟 size_t my_strlen(const char* arr) { int count = 0; while(*arr) { arr++; count++ ; } return count; } int main() { printf( " %zd", my_strlen("adsshadsa")); }//模拟实现strlen函数 strcpy 函数模拟  char* my_strcpy(char* arr1, const char* arr2) { char* arr3 = arr1; while (*arr1 = *arr2) {  模拟strcmp函数 int my_strcmp(const char* arr1, const char* arr2) { while (*arr1 == *arr2) { if (! - *arr2; } int main() { int ret = my_strcmp("dasdsa", "dasdst"); printf("%d", ret); }//模拟strcmp函数

    45310编辑于 2024-04-08
领券