
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
- 若为 TRUE,strstr() 将返回 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,代表输入的结束。