目录
1、用指针实现strlen,strcpy,strcat,strcmp;
1、用指针实现strlen,strcpy,strcat,strcmp;
#include <stdio.h>
#include <string.h>
int mystrlen(char *str1)
{
char *p1 = str1;
int num = 0;
while(*p1)
{
num++;
p1++;
}
return num;
}
char *mystrcpy(char *str1,char *str2)
{
char *p1 = str1;
char *p2 = str2;
while(*p2)
{
*p1 = *p2;
p1++;
p2++;
}
return str1;
}
char *mystrcat(char *str1,char *str2)
{
char *p1 = str1;
char *p2 = str2;
int len = strlen(str1);
while(*p2)
{
*(p1 + len) = *p2;
p1++;
p2++;
}
return str1;
}
int mystrcmp(char *str1,char *str2)
{
char *p1 = str1;
char *p2 = str2;
int flag = 0;
while(*p1 != '\0' && *p2 !='\0')
{
if(*p1 > *p2)
{
flag = 1;
break;
}
else if(*p1 < *p2)
{
flag = -1;
break;
}
else
{
flag = 0;
}
*p1++;
*p2++;
}
return flag;
}
int main(int argc, const char *argv[])
{
char arr[30] = " ";
gets(arr);
char brr[30] = " ";
gets(brr);
printf("%d\n",mystrlen(arr));
puts(mystrcpy(arr,brr));
puts(mystrcat(arr,brr));
printf("%d\n",mystrcmp(arr,brr));
return 0;
}
2、用一个swap函数实现两数交换
#include <stdio.h>
#include <string.h>
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int x = 5;
int y = 10;
printf("交换前:\n");
printf("x = %d, y = %d\n", x, y);
swap(&x, &y);
printf("交换后:\n");
printf("x = %d, y = %d\n", x, y);
return 0;
}