...字符串中从与第一个字符匹配的位置开始到与第二个字。。。

发布网友 发布时间:2024-10-23 18:01

我来回答

4个回答

热心网友 时间:2024-11-17 15:56

#include<stdio.h>
#include<conio.h>
#include<string.h>

char *fun(char *str, char begin, char end);

char *fun(char *str, char begin, char end)
{
char *s, *d;
int i;

s = strchr(str, begin);
d = strchr(str, end);

if(s && d)
for(i = 0; i <= d-s; i++)
printf("%c", *(s+i));

return s;

}

void main(void)
{
char s[100];
char begin, end;

printf("请输入字符串:");
scanf("%s", s);
fflush(stdin);
printf("请输入起始字符:");
begin = getchar();
fflush(stdin);
printf("请输入结束字符:");
end = getchar();

fun(s, begin, end);

getch();
}

热心网友 时间:2024-11-17 15:53

char *fun(char *p,char c_begin,char c_end)
{
static char buffer[256]; // 必须保证buffer缓存比str大。
char *pb,*pe;

strcpy(buffer,p);
pb=strchr(buffer,c_begin)
if(pb!=NULL)
{
pe=strchr(pb,c_end);
if(pe!=NULL)
{
pe++;
*pe=0;
return pb;
}
}
strcpy(buffer,"not found");
return buffer;
}

热心网友 时间:2024-11-17 15:53

#include <stdio.h>
char newstr[80];
void main()
{
char str[80],c_begin,c_end;
char *fun(char *p,char c_begin,char c_end);

scanf("%s",str);
getchar();
c_begin=getchar();
getchar();
c_end=getchar();
puts(fun(str,c_begin,c_end));
}
char *fun(char *p,char c_begin,char c_end)
{
int n=0,i,j=0,k=0,m,b;
for(;p[n]!='\0';n++)
;
for(i=0;i<n;i++){
k++;
if(*(p+i)==c_begin)
break;
}
for(i=0;i<n;i++){
j++;
if(*(p+i)==c_end)
break;
}

b=k;
for(m=0;m<j-k+1;m++,b++){
newstr[m]=*(p+b-1);
}
newstr[m]='\0';
return newstr;
}

热心网友 时间:2024-11-17 15:51

char* fun(char *p,char a,char b){
char *d,*m,*n;
int len=strlen(p);
n=p;m=p+len-1;
while(n<m){
if(*n==a)break;
n++;
}
while(m>n){
if(*m==b)break;m--;
}
if(m!=n){len=m-n;
d=malloc(len);
for(int i=0;i<len;i++)*(d+i)=*(n+i);
return d;
}
return NULL;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com