关于strstr函数功能的问题
c++教程上对于strstr函数有如下说明:char*strstr(char*s1,char*s2)其功能是在字符串s1中从左边开始查找字符串s2,若查找成功则返回s2在...
c++教程上对于strstr函数有如下说明: char *strstr ( char *s1,char *s2 )其功能是在字符串s1中从左边开始查找字符串s2,若查找成功则返回s2在s1中首次出现的位置,否则返回NULL。但从程序声明上看,strstr函数是返回值为指向字符型量的指针的函数,即函数返回给的是一个指向字符型量的指针型量(字符型变量),也就是一个字符型变量的地址(字符型,包括字符和字符串);而s1、s2是指向字符型量的指针型参数,也就是一个字符型量的地址参数(字符型,包括字符和字符串)。按下面的文字说明,查找成功则返回非空返回值,请问这个地址与前面的地址s1,s2有什么联系?
展开
3个回答
2013-06-10
展开全部
有联系因为char *很特别, char *其实是开辟一段常量内存来存放一段字符串, 然后返回这段字符串的首地址那么楼主最后说的如果查找成功则返回非空返回值, 这个地址其实就是结果的首地址如果成功, 那么你的strstr函数里面已经已经写好一个查找的函数, 这个指针从原始字符串里面的第一个字符开始查找, 指针一个一个向后移动, 如果查找到了子串, 那么就返回当前的指针, 其实这个返回值就是原字符串的其中一个字符的地址
2013-06-10
展开全部
char *strstr(const char *s1, const char *s2); /* C only */const char *strstr(const char *s1, const char *s2); // C++ only
char *strstr(char *s1, const char *s2); // C++ only
wchar_t * wcsstr(const wchar_t *s1, const wchar_t *s2);unsigned char * _mbsstr(const unsigned char *s1, const unsigned char *s2);DescriptionScans a string for the occurrence of a given substring.strstr scans s1 for the first occurrence of the substring s2.Return Valuestrstr returns a pointer to the element in s1, where s2 begins (points to s2 in s1). If s2 does not occur in s1, strstr returns null.可见返回值是S2在s1中出现的起始位置指针;或者是空指针
char *strstr(char *s1, const char *s2); // C++ only
wchar_t * wcsstr(const wchar_t *s1, const wchar_t *s2);unsigned char * _mbsstr(const unsigned char *s1, const unsigned char *s2);DescriptionScans a string for the occurrence of a given substring.strstr scans s1 for the first occurrence of the substring s2.Return Valuestrstr returns a pointer to the element in s1, where s2 begins (points to s2 in s1). If s2 does not occur in s1, strstr returns null.可见返回值是S2在s1中出现的起始位置指针;或者是空指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-10
展开全部
希望你能尝试理解OPP对象的概念,很多时候我们是这样用的strcpy(str1,strstr ( s1,s2 ));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询