1.用指针实现strlen
#include<stdio.h>
#include<string.h>
int mystrlen(char *s);
int main(int argc, const char *argv[])
{
char arr[50]="0";
char *ptr=arr;
int len=0;
printf("输入一串字符:");
gets(arr);
len=mystrlen(ptr);
printf("长度为%d\n",len);
return 0;
}
int mystrlen(char *s)
{
int i=0;
int len=0;
char *pa=s;
for(i=0;*(pa+i)!='\0';i++)
{
len++;
}
return len;
}
2.用指针实现strcpy
#include<stdio.h>
#include<string.h>
char *mystrcpy(char *s1,char *s2);
int main(int argc, const char *argv[])
{
char arr[50]="0";
char brr[50]="0";
char *pa=arr;
char *pb=brr;
printf("输入第一串字符:");
gets(arr);
printf("输入第二串字符:");
gets(brr);
mystrcpy(pa,pb);
printf("复制后为%s\n",pa);
return 0;
}
char *mystrcpy(char *s1,char *s2)
{
char *str=s1;
while(*str++=*s2++);
return str;
}
3.用指针实现strcat
#include <stdio.h>
#include <string.h>
char *mystrcat(char *s1,char *s2);
int main(int argc, const char *argv[])
{
char arr[50]="0";
char brr[50]="0";
char *pa=arr;
char *pb=brr;
printf("输入第一组数组:");
gets(arr);
printf("输入第二组数组:");
gets(brr);
mystrcat(pa,pb);
printf("%s\n",pa);
return 0;
}
char *mystrcat(char *s1,char *s2)
{
char *ptr=s1;
char *str=s2;
int i=0;
int len1=strlen(ptr);
int len2=strlen(str);
for(i=0;i<len2;i++)
{
*(ptr+len1+i)=*(str+i);
}
return ptr;
}
4.用指针实现strcmp
#include <stdio.h>
#include <string.h>
int mystrcmp(char *s1,char *s2);
int main(int argc, const char *argv[])
{
char arr[50]="0";
char brr[50]="0";
char *pa=arr;
char *pb=brr;
printf("输入第一个数组:");
gets(arr);
printf("输入第二个数组:");
gets(brr);
int cmp=mystrcmp(pa,pb);
printf("cmp = %d\n",cmp);
return 0;
}
int mystrcmp(char *s1,char *s2)
{
char *str1=s1;
char *str2=s2;
int result=0;
while(*str1 !='\0' || *str2 != '\0' )
{
if(*str1 != *str2)
{
result = *str1-*str2;
break;
}
str1++;
str2++;
}
return result;
}
5.写一个swap函数实现两数交换
#include<stdio.h>
#include<string.h>
void swap(int *pa,int *pb);
int main(int argc, const char *argv[])
{
int a=0,b=0;
int *pa=&a;
int *pb=&b;
printf("输入两个数:\n");
scanf("%d%d",&a,&b);
swap(pa,pb);
printf("交换后两数为:%d %d\n",*pa,*pb);
return 0;
}
void swap(int *pa,int *pb)
{
int temp=0;
temp=*pa;
*pa=*pb;
*pb=temp;
}