扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#includestdio.h
成都创新互联公司主营凌海网站建设的网络公司,主营网站建设方案,成都app软件开发,凌海h5成都微信小程序搭建,凌海网站营销推广欢迎凌海等地区企业咨询
#includestring.h
int main()
{
int flag;
char a[30]="iamtired";
char b[100];
scanf("%s",b);
if( strstr( b , a ) )
flag=1;
else
flag=0;
printf("flag=%d\n", flag );
return 0;
}
char *match (char*s,char ch1,char ch2)
函数各部分的含义:
第一个char,一般是代表函数的返回值是一个字符。但是它后面有一个*,应该把char和*连起来看,就是char*了。
那么,第一个就是char*,代表函数的返回值是一个字符指针(地址)。
match是函数的名字。
括号内是函数的参数,多个参数用逗号分隔。本例共有3个参数:char*s,char ch1,char ch2,第一个是s,类型为char*型(字符指针型),后两个ch1、ch2都是char型(字符型)。
到这儿,你就知道去掉*match前的*为什么就不对了。
另外,括号里参数类型(如包含指针)跟函数返回值的类型无关。函数名前加不加*只与函数返回值的类型有关。
同学,你想填个限制条件,应该可以想到 if 一下,就可以了啊、、
if( match(arr) ) // match函数,如果 arr 以 .jpg为后缀,返回 1,否则返回 0
fputs(arr, stdout);
下面就是match()怎么编写的问题了,我给出一个吧:
int match(char * s)
{
char * t = s;
while(*t++); // 将 t 移到字符串尾(实际上是字符串尾的一下个位置)
t -= 5; // 倒退 5 个位置
if(t =s *t =='.' *(t+1) == 'j' *(t+2) == 'p' *(t+3) == 'g')
return 1;
else
return 0;
}
你可能发现上面的代码太呆板了,如果,我们想输出,以.txt为后缀的呢?、以.abc为后缀的呢?、于是,我们很容易,想到编写一个更通用的函数
int match(char *s, char *t); //如果,s 以 t为后缀,则返回1,否则返回0
给出一个实现:
int match(char * s, char *t)
{
char * p = s;
while(*p++); // 将 p 移到字符串尾(实际上是字符串尾的一下个位置)
p -= strlen(t) + 1; // 倒退 若干 个位置
if(p =s !strcmp( p, t)) // 后面匹配
return 1;
else
return 0;
}
写到这里,你可能会高兴,但悲剧是,c标准库里面,已经有个函数了,也就是根本不用我们再去编写match函数了,(至于是哪个函数,你翻下书吧,每一本关于c的书,都该简单介绍标准库)
是不是我偏离话题了,my god,愿上帝保佑你~~~
#include stdio.h
char *match(char *s, char ch) /* 函数返回值的类型是字符指针 */
{
while(*s != '\0')
if(*s == ch)
return(s); /* 若在字符串s中找到字符ch,返回相应的地址 */
else
s++;
return(NULL); /* 在s中没有找到ch,返回空指针 */
}
int main(void )
{
char ch, str[80], *p= NULL;
char ch2 = 0;
char *p2 = NULL;
int i = 0;
printf("Please Input the string:\n"); /* 提示输入字符串 */
scanf("%s", str);
getchar(); /* 跳过输入字符串和输入字符之间的分隔符 */
ch = getchar(); /* 输入一个字符 */
getchar();
ch2 = getchar();/* 输入第二个字符 */
if((p = match(str, ch)) != NULL) /* 调用函数match() */
{
if((p2 = match(p+1, ch2)) != NULL)
{
for (i = 0; i = p2 - p; i++)
{
printf("%c", p[i]);
}
printf("\n");
}
else
printf("Second character Not Found\n");
}
else
printf("First character Not Found\n");
return 0;
}
match函数修改如下。
char *match( char *s, char ch )
{
char *k = NULL;
while( *s != '\0' )
{
if( *s == ch )
k = s;
s++;
}
if( k != NULL )
return(k);
return (NULL);
}
在c语言中是一个头文件的名字
用法是#includematch.h
然后在程序中就可以使用数学函数了
例如:pow(); sin(); fabs(); log(); 等等
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流