#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);
}
![]()
![]()