C语言中,strstr函数的功能是什么?不用库函数,自己写怎么写?

作者&投稿:须蝶 (若有异议请与网页底部的电邮联系)
C语言中有类似strstr但是忽略大小写的库函数吗~

没有,C的标准库函数中并没有stristr之类的函数,可以自己写一个
extern char* stristr(const char* pString, const char* pFind) { char* char1 = NULL; char* char2 = NULL; if((pString == NULL) || (pFind == NULL) || (strlen(pString) 0x5A) || (c1 < 0x41)) && (*char1 != *char2))) break; } if((*char2) == '/0') return char3; char1 = char3; } return NULL; }

没有这样的库函数
只有strcmp有忽略大小写
而且不同平台的函数名不一样
要忽略大小写实现strstr只能自己写一个了。
网上的strstr源码很多 稍微修改一下就可以实现你说的功能了。

C语言中,strstr函数的功能是寻找字符串中子串出现的位置,自己写的步骤如下。

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:。

int fun(char *a, char *b)

{

int i, j, alen = strlen(a), blen = strlen(b);

for (i = 0; i < alen - blen + 1; i++)

if (a[i] == b[0]) {

for (j = 1; j < blen; j++) if (a[i + j] != b[j])break;

if (j == blen)

return i;

}

return -1;

}

3、编译器运行test.cpp文件,此时成功实现了strstr实现了字符串查找。



1、新建php文件。

2、声明两个变量。

3、截取变量c后面的所有内容。

4、预览效果如图所示。

5、再加一个c。

6、可以看出截取的是第一个c后面所有字符,附上源码,<?php,header('content-type:text/html;charset=utf-8');// 截取内容函数$str1 = 'JcavaScript';$str2 = 'c';echo strstr($str1, $str2) , '<br/><br/>';。



函数原型是char *strstr(char *str1,char *str2);作用是找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)
如果找到返回该位置的指针。若找不到,返回NULL指针。如果不用库函数写,就得用到串操作中的模式匹配算法,或者他的改进算法!!!
这里给你一个模式匹配算法不明白的,可以交流下!!
#include <stdio.h>
#include<string.h>

int main()
{
char a[10];
char b[5];
int i,j,m,n,k;
printf("输入字符串a:");
scanf("%s",a);
printf("输入字符串b:");
scanf("%s",b);

i=k=0;
j=0;
while(i<strlen(a)&&j<strlen(b))
{
if(a[i]==b[j])
{
i++;
j++;
}
else
{
j=0;k++;
i=k;//可用于记录原来i的位置 ;

}
}

if(j>=strlen(b))//判断找到字符串的条件
{
printf("找到字符串%s",b);
return 1;
}
else
{
printf("未找到字符串%s\n",b);
return 0;
}

}

c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!!

这个我也是第一次见,看下这个网站吧
http://baike.baidu.com/view/745156.htm


c语言怎么输入原串,读取一行子串 并查找子串出现的所在位置?
\/\/找到一次匹配,记录位置 list[i++]=st-str1,len++,st=p1;else\/\/不匹配,从下一个字母开始新回合检查 p1=++st;p2=str2;} ln=len;return list;} int prString(char str[]){ int len=0;len=strlen(str);printf("输入的字符串长度为%d,内容为%s\\n",len,str);return len;} ...

c语言编程题:去掉一英文句子中的所有空格。假设该句子不超过100个字 ...
include<stdio.h>#include<string.h>int main(){ char str[100]; gets(str); int i; for(i=0;i<strlen(str);i++) if(str[i]!=' ') printf("%c",str[i]); return 0;}

c语言 输入一个字符串,将该字符串中从第m个字符开始的全部字符复制到另...
这样:include<stdio.h> include<string.h> int main (){ void copystr(char *,char *,int);int m;char str1[20],str2[20];printf("input string:");gets(str1);printf("which character that begin to copy?");scanf("%d",&m);if(strlen(str1) < m){ printf("input error!")...

c语言中时间处理
CTime(const SYSTEMTIME& st,int nDST = - 1) ;以一个SYSTEMTIME结构体变量来构造CTime对象。SYSTEMTIME结构体也是我们对日期时间的常用表示方式。参数st为以本地时间表示的SYSTEMTIME对象,参数nDST同上。static CTime WINAPI GetCurrentTime( );获取系统当前日期和时间。返回表示当前日期和时间的CTime对象。

C语言 输入一个整数 计算并打印它的数字中有多少个7
1.只要将数值逐位取余,进行判断即可。include <stdio.h>int main(){ int num = 0, cnt = 0; printf("input a num:"); scanf("%d", &num); while (num) { if (num%10 == 7) \/\/ 逐位取余 cnt++; num \/= 10; } printf("It has %d.\\n"...

英语中什么情况下,p读成b?
1、前面有s音,后面还有元音或浊辅音时 例如:spot [spɒt],实际[sbɒt]。n.斑点;污迹;污渍;脏点;(皮肤上的)丘疹,疱疹,粉刺;脓疱 v.看见;看出;注意到;发现;(对比赛对手)让分,让子,让步 Adj.现货交易的;立即支付的 例句:a small mark or lump on a person's skin, ...

我这有C语言的题,哪位大侠能解决一下,必有重谢!
11、设char ch,str[4],*strp;,则下列赋值语句正确的是( )。本题(1分)A:ch="CBA";B:str="CBA";C:strp="CBA";D:*strp="CBA"; A B C D 12、以下程序关于sizeof()的运行结果是( )。void main(){ char a[]="movie",b[10]="movie"; printf("%d %d\\n",sizeof(a),sizeof(b));}...

C语言程序题
A 错误。str1的大小是6,str2的大小是7,后面复制给前面,溢出。B 错误。str1中没有赋初值,随机数。而连接函数要求是找到前一个字符串的'\\0',所以无法找到。C 正确。str虽然为空字符,但是有结束符'\\0',可以连接。D 错误。两个均为指针,没有申请空间,只是指向了字符串的首地址,无法进行...

C语言中怎样测试函数执行时间
struct rusage stRusage;struct timeval stTimeval;if (TEST_METHOD == TEST_BY_GETTIMEOFDAY){ gettimeofday(&stTimeval, NULL);} else if (TEST_METHOD == TEST_BY_GETRUSAGE){ getrusage(RUSAGE_SELF, &stRusage);stTimeval = stRusage.ru_utime;} return stTimeval.tv_sec + (double)st...

求C语言中的库函数的源代码 如printf()函数,我要它的源代码
如果你安装的Visual Studio,以及它的Visual C++的话,那么在安装目录下的VC\/crt\/src下有所有标准C库的源代码 另外,h后缀的头文件包含函数的声明,具体的实现都在c后缀的源码文件中

从化市15561042693: c语言中的strstr()函数是用来搜索字符串的,为什么对两个unsigned char 类型的字符串搜索时会出错? -
茅洋可谱: 这个明显是参数传递有问题 解决方法,对于字符串常量,可以简单地在字符串前面加一个L来解决,对于字符串变量,可以使用mbtowc函数把双字节字符转化成Unicode,具体操作方式参见msdn.总之,以后在遇到这样的编译错误,应该能够反应到是不是字符编码的问题.

从化市15561042693: C语言,问一个函数,检索并且返回某字符在某字符串中第一次出现的位置.是什么函数,返回值有哪些?急 -
茅洋可谱: 如下: 函数名: strstr 功能: 在字符串中查找指定字符串的第一次出现 用法: char *strstr(char *str1, char *str2); strstr原型:extern char *strstr(char *haystack, char *needle); 头文件:#include功能:从字符串haystack中寻找needle第一次出现...

从化市15561042693: c语言 strstr和strrpl库函数的作用是什么?? -
茅洋可谱: 标准C语言实现下列标准库函数,设计中不得使用其他库函数. strstr库函数: char *strstr(char *str1,char *str2); 在字符串str1中,寻找字串str2,若找到返回找到的位置,否则返回NULL. #include <iostream> char *strstr(const char *str1, const ...

从化市15561042693: strstr函数全称 -
茅洋可谱: 在C语言中 strchr 和 strstr函数都被包含在<string.h>头文件中,也就是要调用它们时要在程序前面包含<string.h>头文件,也就是写这个语句:#include<string.h> strchr函数原型:char * strchr(char * str, int ch); 功能就是找出在字符串str中第一次出...

从化市15561042693: C语言中怎么做到只检索一句话中的一部分!! -
茅洋可谱: 1. 使用库函数 string.h strstr函数 函数名: strstr 功 能: 在串中查找指定字符串的第一次出现 用 法: char *strstr(char *str1, char *str2); 说明:返回指向第一次出现str2位置的指针,如果没找到则返回NULL. 调用函数,判断返回值是否等于NULL...

从化市15561042693: 输入二个字符串a和b,判断字符串b是否是字符串a的子串,是则输出b串在a串中的开始位置否则输出 - 1(C语言) -
茅洋可谱: 有现成的为何不用?函数名: strstr 函数原型:extern char *strstr(char *str1, char *str2); 功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符).返回值:返回该位置的指针,如找不到,返回空指针.

从化市15561042693: strchr与strstr函数 -
茅洋可谱: 原型:extern char *strchr(char *s,char c); 用法:#include 功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL. 举例: // strchr.c #include #include main() { char *s="Golden Global View"; char *p; clrscr(); strchr(s,'V'); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0; }

从化市15561042693: c语言计算器怎样做三角函数功能? -
茅洋可谱: 很简单的,比如你已经有一个表达式char exp[];那么 char * s = strstr(exp, "sin");if(s) { 执行sin(alpha)}就可以了strstr是一个字符串函数,用于查找字符串内与关键字匹配的那个位置比如char exp[] = "cos(a) + sin(b) - tan(c)";那么char * s = strstr(exp, "sin");printf(s)的结果是:sin(b) - tan(c)

从化市15561042693: C语言中string.h中用到的字符串处理函数有哪些??? -
茅洋可谱: 好多啊.c语言书《c语言程序设计》上有啊

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网