#include?stdio.h
成都創(chuàng)新互聯(lián)于2013年成立,先為諸城等服務(wù)建站,諸城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為諸城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
#include?stdlib.h
#include?string.h
char?*sub(char?*s,int?st,int?len)
{char?*s1;
int?i;
s1=(char*)malloc(len);
for(i=0;ilen;i++)s1[i]=s[st+i-1];
s1[i]='\0';
return?s1;
}
int?main()
{int?n,i,j;
char?s[200];
scanf("%d%*c",n);
while(n--)
{printf("input?a?string:");
gets(s);
printf("i=");
scanf("%d",i);
printf("j=");
scanf("%d%*c",j);
if(i+jstrlen(s))printf("Error\n");
else?printf("%s\n",sub(s,i,j));
}
return?0;
}
定義為:char *p;
完整的程序如下:
#includestdio.h
#includestring.h
void main()
{
int i;
char a[30],ch;
char *p;//這里!這里!這里!這里!這里!這里!這里!這里!這里!這里!
gets(a);//輸入帶空格字符的字符串,賦予字符數(shù)組變量a
ch=getchar();//輸入要查找的字符賦予字符變量b
p=strchr(a,ch);//查找字符位置函數(shù)
if(p!=NULL)
printf("在字符串%s中以字符%c開始的子串為%s.\n",a,ch,p);
else
printf("在字符串%s中沒找到字符%c.\n",a,ch);
}
char* search(char* str, char ch)
{
char *pmax, *p, *p1;
int max;
pmax = NULL;
max = 0;
p = str;
while(1)
{
while(*p != NULL *p !=ch) p++;
if(*p== ch)
{
for(p1=p++; *p==ch; p++);
if(p-p1 max)
{
max = p-p1;
pmax = p1;
}
}
}
return pmax;
}
c:
#include?stdio.h
#include?stdlib.h
#include?math.h
#include?string.h
int?countsub(char?*str,?char?*ss)?{
int?len?=?strlen(str),?index?=?0,?max?=?0;
int?*maxStr?=?(int*)malloc(sizeof(int)?*?len);
for?(index?=?0;?index??len;?++index)?{
maxStr[index]?=?0;
}
index?=?0;
for?(int?i?=?0;?str[i]?!=?'\0';?++i)?{
int?j?=?0;
for?(;?ss[j]?!=?'\0'??str[i?+?j]?!=?'\0'??ss[j]?==?str[i?+?j];?++j);
if?(j??0??ss[j]?==?'\0')?{
maxStr[index]++;
i?+=?j?-?1;
}?else?{
index++;
}
if?(maxStr[index]??max)
max?=?maxStr[index];
}
return?max;
}
int?main()?{
char?s1[1000]?=?{?0?},?s2[100]?=?{?0?};
gets(s1);
gets(s2);
printf("%d\n",?countsub(s1,?s2));
return?0;
}