指针作业:
1.使用指针实现字符串拷贝
void MyStrcpy(char *p,char *q)
#include<stdio.h>
#include<string.h>
void MyStrcpy(char *p,char *q)
{
for(;*q!='\0';)
{
*p=*q;
p++;
q++;
}
*p='\0';
}
int main(int argc, const char *argv[])
{
char str[]="";
char str1[]="123";
MyStrcpy(str,str1);
printf("str=%s\n",str);
return 0;
}
2.使用指针实现字符串比较
Void MyStrcmp(char *p,char *q)
#include <stdio.h>
#include <string.h>
void MyStrcmp(char *p,char *q)
{
int cha;
while(*p!='\0'&&*q!='\0'&&*p==*q){
p++;
q++;
}
cha=*p-*q;
if(cha==0)
printf("str1=str2\n");
else if(cha>0)
printf("str1>str2\n");
else
printf("str1<str2\n");
}
int main(int argc, const char *argv[])
{
char str[]="abc";
char str1[]="abb";
MyStrcmp(str,str1);
return 0;
}
3.使用指针实现计算单词的个数,返回单词的个数
Char str[]=”hello my student”
输出有3个字符串
Int StrNum(char *p)
#include <stdio.h>
#include <string.h>
int StrNum(char *p)
{
int count=0;
for(int i=0;i<strlen(p);i++)
{
if(*(p+i)!=' '&&*(p+i+1)==' '||*(p+i)!=' '&&*(p+i+1)=='\0')
count++;
}
return count;
}
int main(int argc, const char *argv[])
{
char str[]="hello my student";
int count=StrNum(str);
printf("有%d个单词\n",count);
return 0;
}
指针练习:
1.使用指针实现两个数的交换
#include<stdio.h>
#include<string.h>
void Swap(int *a,int*b)
{
int t;
t=*a;*a=*b;*b=t;
printf("%d %d\n",*a,*b);
}
int main(int argc, const char *argv[])
{
int a=6;
int b=3;
Swap(&a,&b);
return 0;
}
2.计算一维数组的最大值,并返回最大值
int Max(int *p,int n) 使用*(p+i)
#include<stdio.h>
#include<string.h>
int Max(int *p,int n)
{
int i,max;
for(i=0;i<n;i++)
{
if(i==0)
max=*(p+i);
if(max<*(p+i))
max=*(p+i);
}
return max;
}
int main(int argc, const char *argv[])
{
int a[]={3,13,53,14,80};
int n=sizeof(a)/sizeof(a[0]);
int max=Max(a,n);
printf("最大值是:%d\n",max);
return 0;
}
3.指针实现一维数组冒泡排序
void Bubble(int *p,int n)
#include<stdio.h>
#include<string.h>
void Bubble(int *p,int n)
{
int i,j,temp,count;
for(i=1;i<n;i++)
{
for(j=0;j<n-i;j++)
{
if(*(p+j)>*(p+j+1))
{
temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;
count++;
}
}
if(count==0)
break;
}
for(i=0;i<n;i++)
{
printf("%d\t",*(p+i));
}
}
int main(int argc, const char *argv[])
{
int arr[]={1,7,2,4};
int n=sizeof(arr)/sizeof(arr[0]);
Bubble(arr,n);
int *p=arr;
return 0;
}