c语言如何查找字符串?

c语言如何查找字符串?,第1张

C语言中的标准函数库中的strchr()函数可以实现查找字符中的某个字符

C语言strchr()函数:

查找某字符在字符串中首次出现的位置

头文件:#include <string.h>

strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:

char * strchr (const char *str, int c)

【参数】str 为要查找的字符串,c 为要查找的字符。

strchr() 将会找出 str 字符串中第一次出现的字符 c 的地址,然后将该地址返回。

注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。

【返回值】如果找到指定的字符则返回该字符所在地址,否则返回 NULL。

返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置。设字符在字符串中首次出现的位置为 i,那么返回的地址可以理解为 str + i。

提示:如果希望查找某字符在字符串中最后一次出现的位置,可以使用 strrchr() 函数。

用strstr这个函数

包含文件:string.h

函数名: strstr

函数原型:extern char *strstr(char *str1, char *str2)

功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。

返回值:返回该位置的指针,如找不到,返回空指针。

源代码:

#include<stdio.h>

#include<string.h>//调用string.h中的strstr函数

void main(){

char ch1[255]="abcde"

char ch2[100]="cd"

char* ch//用于接受返回值

if((ch=strstr(ch1,ch2))==NULL){//说明没有要找的字符串

printf("-1\n")

}else{//说明找到了那个字符串

printf("%d\n",ch-ch1+1)//cde的地址减去abcde的地址+1

}

}

#include <stdio.h>

#include <string.h>

void main()

{

int i=0,j,lena,lenb,lenc

char a[100]="hello china,right error!",b[10]="error", *ptr

ptr=strstr(a,b)

if(ptr)

{

lena=strlen(a)

lenb=strlen(b)

lenc=strlen(ptr)

if(lena>lenc) /* 前面有字符 */

{

j=lena-lenc-1

if((a[j]>='0' &&a[j]<='9') || (a[j]>='a' &&a[j]<='z') || (a[j]>='a' &&a[j]<='z'))

i=1

}

if(lenc>lenb) /* 后面有字符 */

{

j=lena-lenc+lenb

if((a[j]>='0' &&a[j]<='9') || (a[j]>='a' &&a[j]<='z') || (a[j]>='a' &&a[j]<='z'))

i=1

}

if(i==0)

puts("YES")

else puts("NO")

}

else puts("NO")

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10058086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存