新闻资讯
看你所看,想你所想

strchr

strchr

strchr

strchr是计算机程式语言的一个函式,原型为extern char *strchr(const char *s,char c),可以查找字元串s中首次出现字元c的位置。

基本介绍

  • 中文名:strchr
  • 类型:概念
  • 类别:函式
  • 套用:计算机

C语言

char *strchr(const char* _Str,char _Val)
char *strchr(char* _Str,char _Ch)
头档案:#include <string.h>
功能:查找字元串_Str中首次出现字元_Val的位置
说明:返回首次出现_Val的位置的指针,返回的地址是被查找字元串指针开始的第一个与Val相同字元的指针,如果Str中不存在Val则返回NULL。
返回值:成功则返回要查找字元第一次出现的位置,失败返回NULL

PHP语言

string strchr(string$haystack, mixed$needle [,bool$before_needle=false])
返回 haystack 字元串从 needle 第一次出现的位置开始到 haystack 结尾的字元串。
Note:
该函式区分大小写。如果想要不区分大小写,请使用 strichr()。
Note:
如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费记忆体更少的 strpos() 函式。

参数

  • haystack
  • 输入字元串。
  • needle
  • 如果 needle 不是一个字元串,那幺它将被转化为整型并且作为字元的序号来使用。
  • before_needle
  • 若为 TRUEstrstr() 将返回 needle 在 haystack 中的位置之前的部分。
返回: 返回字元串的一部分或者 FALSE(如果未发现 needle)。
例子:
<?php$email='name@example.com';$domain=strchr($email,'@');echo$domain;//列印@example.com$user=strchr($email,'@',true);//从PHP5.3.0起echo$user;//列印name?>

函式公式

实现:
char* strchr(char *s, char c){    while(*s != '\0' && *s != c)    {        ++s;    }    return *s==c ? s : NULL;}

範例

举例1:(在Visual C++ 6.0中运行通过)
#include <string.h>#include <stdio.h>int main(void){    char string[17];    char *ptr,c='r';    strcpy(string,"Thisisastring");    ptr=strchr(string,c);    if(ptr)        printf("The character %cis at position:%s\n",c,ptr);    else        printf("The character was not found\n");    return 0;}
运行结果:
The character r is at position: ring
请按任意键继续. . .
举例2:
// strchr.c#include <stdio.h>#include <string.h>int main(){    char temp[32];    memset(temp,0,sizeof(temp));    strcpy(temp,"Golden Global View");    char *s = temp;    char *p,c='v';    p=strchr(s,c);    if(p)        printf("%s",p);    else        printf("Not Found!"); return 0;}
运行结果:Not Found!Press any key to continue
举例3:
#include <stdio.h>#include <string.h>void main(){    char answer[100],*p;    printf("Type something:\n");    fgets(answer,sizeof answer,stdin);    if((p = strchr(answer,'\n')) != NULL)        *p = '\0';//手动将\n位置处的值变为0    printf("You typed \"%s\"\n",answer);}
fgets不会像gets那样自动地去掉结尾的\n,所以程式中手动将\n位置处的值变为\0,代表输入的结束。

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com