C语言关于字符串的函数
编写一个函数string_in()它接受两个字符串指针参数。如果第二个字符串包含在第一个字符串中,返回被包含字符串的首地址;否则返回空指针。例如:string_in("s...
编写一个函数string_in( ) 它接受两个字符串指针参数。
如果第二个字符串包含在第一个字符串中,返回被包含字符串的首地址;否则返回空指针。
例如:string_in( "student","dent") 返回student中d的地址。 展开
如果第二个字符串包含在第一个字符串中,返回被包含字符串的首地址;否则返回空指针。
例如:string_in( "student","dent") 返回student中d的地址。 展开
5个回答
展开全部
string里有一个这样的函数,我觉得挺符合你的要求
函数名: char* strstr(char *haystack, char *needle)
功 能: 从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)
头文件:#include<string.h>
说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL
函数名: char* strstr(char *haystack, char *needle)
功 能: 从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)
头文件:#include<string.h>
说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
char * string_in(const char * str1, const char *str2);
int main(void)
{
char str1[] = "abcde";
char str2[] = "rbcde";
printf("%ld\n",string_in(str1,str2));
system("pause");
return 0;
}
char * string_in(const char * str1, const char * str2)
{
char *pt;
if ((pt = strstr(str1,str2)) != NULL)
return pt;
else
return NULL;
}
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
char * string_in(const char * str1, const char *str2);
int main(void)
{
char str1[] = "abcde";
char str2[] = "rbcde";
printf("%ld\n",string_in(str1,str2));
system("pause");
return 0;
}
char * string_in(const char * str1, const char * str2)
{
char *pt;
if ((pt = strstr(str1,str2)) != NULL)
return pt;
else
return NULL;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char * string_in(char*str, char * substr)
{
char *p1,*p2;
if(str == NULL || substr == NULL )
return NULL;
if(*substr ==0)
return str;
while(*str !=0)
{
p1 = str;
p2 = substr;
while(*p1 == *p2 && *p2 !=0 && *p1 !=0){
p1 ++;p2++;
}
if(*p2 ==0)
return str;
if(*p1 ==0)
return NULL;
str ++;
}
return NULL;
}
{
char *p1,*p2;
if(str == NULL || substr == NULL )
return NULL;
if(*substr ==0)
return str;
while(*str !=0)
{
p1 = str;
p2 = substr;
while(*p1 == *p2 && *p2 !=0 && *p1 !=0){
p1 ++;p2++;
}
if(*p2 ==0)
return str;
if(*p1 ==0)
return NULL;
str ++;
}
return NULL;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char *string_in(char *str1,char *str2)
{ int i;
if(*str2=='\0') return NULL;
while(*str1)
{ for(i=0;str2[i]!='\0';i++)
{
if(str2[i]!=str1[i]) break;
}
if(str2[i]=='\0') return str1;
str1++;
}
return NULL;
}
{ int i;
if(*str2=='\0') return NULL;
while(*str1)
{ for(i=0;str2[i]!='\0';i++)
{
if(str2[i]!=str1[i]) break;
}
if(str2[i]=='\0') return str1;
str1++;
}
return NULL;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char *string_in(char *s1,char *s2)
{ char *p;
p= strstr(s1,s2); //p是s2在s1中的首地址
if ( p!=NULL) return p;
else return NULL;
}
返回的地址叙述的不太清楚啊,是返回s2在s1中的地址?还是返回s2的地址啊?
{ char *p;
p= strstr(s1,s2); //p是s2在s1中的首地址
if ( p!=NULL) return p;
else return NULL;
}
返回的地址叙述的不太清楚啊,是返回s2在s1中的地址?还是返回s2的地址啊?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询