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的信息别忘了在本站进行查找喔。