1.用指针实现strlen、strcpy、strcat、strcmp
代码:
#include <stdio.h>
#include <string.h>
int mystrlen(char *str);
int mystrcmp(char *str1,char *str2);
char *mystrcat(char *str1,char *str2);
char *mystrcpy(char *str1,char *str2);
int main(int argc, const char *argv[])
{
char arr[30] = "";
char brr[30] = "";
gets(arr);
gets(brr);
printf("len: %d %d\n",mystrlen(arr),mystrlen(brr));
printf("cmp: %d\n",mystrcmp(arr,brr));
mystrcat(arr,brr);
printf("cat: %s\n",arr);
printf("cpy:\n");
mystrcpy(arr,brr);
puts(arr);
puts(brr);
return 0;
}
int mystrlen(char *str)
{
char *p=str;
int i=0,n=0;
for(i=0;*(p+i)!='\0';i++)
{
n++;
}
return n;
}
int mystrcmp(char *str1,char *str2)
{
int result=0;
while(*str1 !='\0' || *str2 != '\0' )
{
if(*str1 != *str2)
{
result = *str1-*str2;
break;
}
str1++;
str2++;
}
return result;
}
char *mystrcpy(char *str1,char *str2)
{
char *cp = str1;
while(*cp++ = *str2++);
return str1;
}
char *mystrcat(char *str1,char *str2)
{
char *pa = str1;
char *pb = str2;
while(*str1 !=0)
{
str1++;
}
for(;*str2 !=0;str1++,str2++)
{
*str1 = *str2;
}
return str1;
}
2.写一个swap函数实现两数交换
代码:
#include<stdio.h>
#include<string.h>
void swap(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
int main(int argc,const char *argv[])
{
int a=10,b=20;
swap(&a,&b);
printf("a=%d,b=%d\n",a,b);
return 0;
}