您的位置:首页 > 科技 > IT业 > 南通网站优化找哪家_服装网购哪个平台最好_吉林seo外包_广州推广工具

南通网站优化找哪家_服装网购哪个平台最好_吉林seo外包_广州推广工具

2024/12/23 11:32:28 来源:https://blog.csdn.net/m0_72128260/article/details/142861286  浏览:    关键词:南通网站优化找哪家_服装网购哪个平台最好_吉林seo外包_广州推广工具
南通网站优化找哪家_服装网购哪个平台最好_吉林seo外包_广州推广工具

       在《C语言从头学31》中,我们学习过“与字符串变量相关的几个函数”,已经知道诸如strcpy、strcat、strcmp()、strlen()等函数定义在string.h中。现在,接着学习string.h中的其它一些函数。
一、函数strchr(),strrchr()
       功能:在字符串中查找指定字符。
       使用格式:strchr(参1,参2); //从头向尾查找(正向)
                         strrchr(参1,参2);//从尾向头查找(逆向)
                           参1:字符串指针变量
                           参2:int型字符
       返回值:找到该字符会停止查找并返回指向该字符的指针(char*类型);如果没有找到则返回NULL。
       说明:这两个函数的使用方法相同,只是查找的方向不同。
二、函数strspn(),strcspn()
       功能:用来查找属于(或者不属于)指定字符集合的字符串长度。
       使用格式:strspn(参1,参2) //查找属于指定字符集合的字符
                         strcspn(参1,参2) //查找不属于指定字符集合的字符
                           参1:源字符串
                           参2:指定字符集合
        返回值:a. strspn()从源字符串第一个字符开始查找,当找到不属于指定字符集合的字符时停止并返回此时的字符串长度(不含不属于的那一个);b.  strcspn()也是从参1的第一个字符开始查找,当找到属于指定字符集合的字符时停止查找,并返回此时的字符串长度(不含属于的那一个字符)。以上两个函数条件相反,如始终没有符合条件的,则返回整个字符串长度。
三、函数strpbrk()
       功能:在字符串中搜索指定字符集合的任意一个字符。
       使用格式:strpbrk(参1,参2);
           参1:源字符串
           参2:指定字符集合
       返回值:返回找到的第一个符合条件字符的指针,找不到返回NULL。
四、函数strstr()
       功能:在一个字符串里面查找另一个字符串。
       使用格式:(参1,参2);
           参1:源字符串
           参2:待查子字符串。
       返回值:查找到指向源字符串里面子字符串的指针;找不到返回NULL。
五、函数strtok()
       功能:将字符串按照指定的分隔符分解成系列单元。
       使用格式:strtok(参1,参2);
          参1:待拆分的字符串指针;(参1为NULL时的意义见说明)
          参2:指定的分隔符
      返回值:指向分解出来的第一个单元,没有分解出来的单元时返回NULL。
      说明:
       a. 参1应使用数组形式;使用char*形式可能报错;strtok() 会修改原始字符串,将所有分隔符
      都替换成字符串结尾符号\0,这也是参1要使用数组形式的原因。
       b. strtok函数不是一次性一个句子分解完毕,一次只分解一个单元出来;
       b. 如想继续分解,参1改成NULL后,每调用一次,可分解出下一个单元。
六、函数memchr()
      功能:在内存区域中查找指定字符
      使用格式:memchr(参1,参2,参3);
          参1:指向内存区域的指针(void*)
          参2:要查找的字符(int)
          参3:内存区域的字节长度(size_t)
      返回值:找到后将停止查找,并返回指向该位置的指针。查完指定的字节数仍找不到则返回NULL。
 七、举例程序

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stddef.h>
#include<string.h> //头文件问题有时编译时发现不了,运行时才能发现
int main(void)
{
//实验函数strchr()、strrchr()char* s = "Hello World!";int c = 'o';char* p1 = strchr(s,c); //正向查找ptrdiff_t pd1 = p1 - s;char* p2 = strrchr(s, c);//反向查找ptrdiff_t pd2 = p2 - s;if (p1 != NULL)printf("o在正数第%d位\n", (int)pd1);//运行结果:o在正数第4位if (p2 != NULL)printf("倒数第%d位也是o\n", (int)strlen(s) - (int)pd2);//运行结果:倒数第5位也是o
//实验函数strspn(),strcspn() <下面使用的s还是"Hello World!">char* stdStr = "aeiou"; //元音字母int len = strspn(s,stdStr);//查找属于的函数,遇到不属于的停printf("strspn返回长度:%d\n", len);//运行结果:strspn返回长度:0//分析:第一个字符H即不在“aeiou”中,立即停止查找,故返回0len = strcspn(s, stdStr);//查找不属于的函数,遇到属于的停printf("strcspn返回长度:%d\n", len);//运行结果:strspn返回长度:1//分析:第1个字H不属于,第2个e属于了,故结束查找,返回1
//实验函数strpbrk()(还是使用s="Hello World!",stdStr = "aeiou")char* ptr = strpbrk(s,stdStr);ptrdiff_t pd = ptr - s;printf("找到的字符位置:%d\n",(int)pd);//运行结果:找到的字符位置:1printf("解析指针ptr:%s\n", ptr);//运行结果:解析指针ptr:ello World!
//实验函数strstr()s = "000123456789";stdStr = "345";ptr = strstr(s,stdStr);pd = ptr - s;printf("找到的子字符串位于:%d\n", (int)pd);//运行结果:找到的子字符串位于:5
//实验函数strtok()char ss[] = "Hello World is first computer program.";char* ret[8];ret[0] = strtok(ss," ");//提取第1个词Helloprintf("s分解出的第1个词:%s\n",ret[0]);for (int i = 1; i < 6; i++){ret[i] = strtok(NULL, " ");//依次提取2、3、4、5、6等printf("s分解出的第%d个词:%s\n",i+1,ret[i]);//s分解出的第1个词:Hello//s分解出的第2个词:World//s分解出的第3个词:is//s分解出的第4个词:first//s分解出的第5个词:computer//s分解出的第6个词:program.}
//实验函数memchr()char* s = "abcdefghijklmn";char* p;int c = 'k';p = (char*)memchr(s, c, 15);ptrdiff_t pd = p - s;printf("查找的字符在第%d位\n", (int)pd);//运行结果:查找的字符在第10位printf("找到的字符:%c\n", *p);//运行结果:找到的字符:kgetchar();return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com