生活资讯
strstr 、c语言strstr
2023-04-18 01:16  浏览:51

VC ++ 中strstr来自哪个头文件

strstr 函数来自#include string.h头文件。

char *strstr( const char *str1, const char *str2 );

功能:函数返回一个指针,它指向字符串str2

首次出现于字符串str1中的位置,如果没有找到,返回NULL。

#include stdio.h

#include string.h

int main()

{

    char *s1 = "123456789", *s2 = "567", *s3 = "abc";

    printf("relust = %sn", strstr(s1, s2)); // 返回 "56789"

    printf("relust = %sn", strstr(s1, s3)); // 返回NULL

    return 0;

}

如何用strstr实现单词替换

楼主的意思是,假使你只想替换单词is,而不想替换象his、ISO、is-command等包含了is的单词。

我给楼主出个基本方法:因为单词是由字母和‘-’组成,strstr返回后,判断其前一个字符和后一个字符是不是'-'或'A'-'Z'或'a'-'z'的字母,只要存在以上情况之一就不进行替换。

至于具体实现,可以使用一个简单的hash数组。

int flagbuf[128] = {0};

flagbuf[45] = 1;

int i = 0;

for (i=65; i91; i++) {

flagbuf[i] = 1;

}

for (i=97; i123; i++) {

flagbuf[i] = 1;

}

char buf[64] = "is abcd his, is-me is";

char *p = buf;

char *q = NULL;

while ((q=strstr(p, argv[1])) != NULL) {

int rpflag = ((qp)?flagbuf[(int)*(q-1)]:0)

| flagbuf[(int)*(q+strlen(argv[1]))];

if (!rpflag) {

} else {

}

p = q+strlen(argv[1]);

q = NULL;

}

做了一下简单测试:

把is 替换成he:

1. before replace: is abcd his, is-me is

after replace: he abcd his, is-me is

2. no replace his

3. no replace is-me

4. before replace: he abcd his, is-me is

after replace: he abcd his, is-me he

strpbrk和strstr的区别

strstr()、strchr()、strpbrk()

strstr() 原型:extern char *strstr(char *h***stack, char *needle); 用法:#include string.h 功能:从字符串h***stack中寻找needle***次出现的位置(不比较结束符NULL)。 说明:返回指向***次出现needle位置的指针,如果没找到则返回NULL。 举例: // strstr.c #include syslib.h #include string.h main() { char *s="Golden Global View"; char *l="lob"; char *p; clrscr(); p=strstr(s,l); if(p)

printf("%s",p); else printf("Not Found!"); getchar();

return 0; } strchr() 原型:extern char *strchr(const char *s,char c); 用法:#include string.h 功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,返回的地址是字符串在内存中随机分配的地址再 加上你所搜索的字符在字符串位置,如果s中不存在c则返回NULL。 举例: #includestring.h #includestdio.h intmain(void) { charstring[17]; char*ptr,c='r'; strcpy(string,"Thisisastring");

ptr=strchr(string,c); if(ptr) printf("Thecharacter%cisatposition:%sn",c,ptr); else printf("Thecharacterwasnotfoundn");return0;

} strpbrk()

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

函数功能:比较字符串str1和str2中是否有相同的字符,如果有,则返回该字符在str1

中的位置的指针。

返回说明:返回指针,搜索到的字符在str1中的索引位置的指针。

#includestring.h

#includestdio.hint main()

{ char *str1="please try again,sky2098!";

char *str2="Hello,I am sky2098,I like writing!"; char *strtemp;

strtemp=strpbrk(str1,str2); //搜索进行匹配 printf("Result is:

%s ",strtemp); return 0;

}

strstr的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言strstr、strstr的信息别忘了在本站进行查找喔。

发表评论
0评