# 实验六

#include<stdio.h>

#define N 5

int binarySearch(int *x,int n,int item);

int main()
{
int a[N]={2,7,19,45,66};
int i,index,key;

printf("数组a中的数据：\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");

printf("输入待查找的数据：");
scanf("%d",&key);

index=binarySearch(a,N,key);

if(index>=0)
printf("%d 在数组中，下标为%d\n",key,index);
else
printf("%d 不在数组中\n",key);

return 0;
}

int binarySearch(int *x,int n,int item)
{
int low,high,mid;

low=0;
high=n-1;

while(low<=high)
{
mid=(low+high)/2;

if(item==*(x+mid))
return mid;

else if(item<*(x+mid))
high=mid-1;

else
low=mid+1;
}
return -1;
}

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void fun(char *a)
{
int i=0;
char *p=a;
while(*p&&*p=='*')
{
a[i]=*p;
i++;
p++;
}
while(*p)
{
if(*p!='*')
{
a[i]=*p;
i++;
}
p++;
}
a[i]='\0';
}

int main()
{
char s[81];

printf("Enter a string :\n");
gets(s);
fun(s);
printf("The string after deleted:\n");
puts(s);

return 0;
}

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void fun(char *a)
{
int i=0;
char *t=a,*f=a;
char *q=a;
while(*t)
t++;
t--;
//指针停在最后一个不为\0的字符处
while(*t=='*')
t--;
//指针停在最后一个不为*的字符处
while(*f=='*')
f++;
//    指针停在第一个不为*的字符处
while(q<f)
{
a[i]=*q;
q++;
i++;
}
//前导*
while(q<t)
{
if(*q!='*')
{
a[i]=*q;
i++;
}
q++;
}

while(*q)
{
a[i]=*q;
i++;
q++;
}
//末尾*
a[i]='\0';
}

int main()
{
char s[81];

printf("Enter a string :\n");
gets(s);
fun(s);
printf("The string after deleted:\n");
puts(s);

return 0;
}

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

#define N 80
int isPalindrome(char *s);

int main()
{
char str[N];
int flag;

printf("Enter a string:\n");
gets(str);

flag = isPalindrome(str);

if(flag)
printf("YES\n");
else
printf("NO\n");

return 0;
}

int isPalindrome(char *s)
{
int n,i;
char *p=s;
char *t=s;
while(*t)
t++;
t--;

n=strlen(s);

for(i=0;i<=n/2;i++)
{
if(*(p+i)!=*(t-i))
{
return 0;break;
}
}
return 1;

}

#include<stdio.h>
#define N 80

int count(char *str,char *substr);

int main()
{
char str[N],substr[N];
int n;

gets(str);
gets(substr);
n = count(str,substr);
printf("%d\n",n);

return 0;
}

int count(char *str,char *substr)
{
int i,j,k;
int num=0;

for(i=0;str[i]!='\0';++i)
for(j=i,k=0;substr[k]==str[j];k++,j++)
{
if(substr[k+1]=='\0')
{
num++;
break;
}
}
return(num);
}

posted @ 2021-12-15 12:23  王金梦  阅读(18)  评论(2编辑  收藏  举报