您的位置:首页 > 娱乐 > 八卦 > C语言strpbrk函数

C语言strpbrk函数

2024/10/6 18:25:55 来源:https://blog.csdn.net/qq_69383179/article/details/141041437  浏览:    关键词:C语言strpbrk函数

目录

  • 开头
  • 1.什么是strpbrk函数?
  • 2.strpbrk函数的内部
    • 程序
    • 流程图
  • 3.strpbrk函数的实际应用
  • 结尾

开头

大家好,我叫这是我58。今天,我们要学一下关于C语言里的能定位字符串中的字符的strpbrk函数的一些知识。

1.什么是strpbrk函数?

strpbrk函数,来自于头文件string.h,用来定位字符串中的字符,在C语言中,它只能由这样构成:char * strpbrk ( const char * str1, const cha * str2)1,其中,str1代表了从哪里定位,str2则代表了要定位的一些字符。如果这个函数成功地定位出了某一个字符(不包括\0),就返回已经从定位好的字符串中的这个字符的地址,否则返回空指针。在我讲完strpbrk函数的基本介绍后,就让我们一起来看一看strpbrk的内部吧。

2.strpbrk函数的内部

程序

char* strpbrk(const char* cp, const char* cpa) {const char* cpb = cpa;for (; *cp; cp++) {for (cpb = cpa; *cpb; cpb++) {if (*cp == *cpb) {return cp;}}}return NULL;
}

流程图

strpbrk函数
是(返回cp)
否(返回空指针)
结束
开始
定义常量字符指针cpb为cpa
*cp?
把cpb设为cpa
*cpb?
*cp == *cpb?
把cpb向右移动一位
把cp向右移动一位

3.strpbrk函数的实际应用

定位字符串中的字符

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main() {char str[99] = "";char stra[99] = "";scanf("%s %s", str, stra);char* cp = strpbrk(str, stra);cp && printf("字符%c在整个str字符串里的下标为:%d\n", *cp, cp - str),cp || printf("定位失败,cp为NULL\n");return 0;
}

求元音字母(a e i o u A E I O U)的个数

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main() {int iconut = 0;char str[999] = "";char* cp = str;printf("请输入你想要从中查询元音字母的个数的字符串 -> ");scanf("%s", str);for (; cp = strpbrk(cp, "aeiouAEIOU");cp++, iconut++) {;}printf("%s的元音字母个数:%d", str, iconut);return 0;
}

NB158 牛牛的名字游戏

#include <string.h>
/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param s string字符串* @return int整型*/
int lengthOfLastWord(char* s ) {int iconut = 0;char* cp = strpbrk(s, " ");if (!cp) {return strlen(s);}cp && (cp += strlen(s) - 1);for (; ' ' == *cp; cp--) {;}for (; ' ' != *cp; iconut++, cp--) {;}return iconut;
}

结尾

在你看到这里之后,可以评论来互动一下我哦。


  1. 选自C语言中strpbrk函数的简介 ↩︎

版权声明:

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

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