1.在不使用strlen的情况下实现其功能:
#include<stdio.h>
int mystrlen(char *pstr)
{
int ret = 0;
while(*pstr != '\0')
{
pstr++;
ret++;
}
return ret;
}
int main(void)
{
char str[32] = {"hello world"};
int len = 0;
len = mystrlen(str);
printf("str = %d\n",len);
return 0;
}
2.在不使用strcpy的情况下实现其功能:
#include<stdio.h>
int mystrcpy(char *pstr1, char *pstr2)
{
while(*pstr1 != '\0')
{
*pstr2 = *pstr1;
pstr2++;
pstr1++;
}
return 0;
}
int main(void)
{
char str1[32] = {"hello world!"};
char str2[32] = {0};
mystrcpy(str1,str2);
printf("str2 = %s\n",str2);
return 0;
}
3.在不使用strcmp的情况下实现其功能:
#include<stdio.h>
int mystrcmp(char *pstr1, char *pstr2)
{
while(*pstr1 == *pstr2 && *pstr1 != '\0')
{
pstr1++;
pstr2++;
}
return *pstr1 - *pstr2;
}
int main(void)
{
char str1[32] = {0};
char str2[32] = {0};
int ret = 0;
gets(str1);
gets(str2);
ret = mystrcmp(str1,str2);
printf("str1 = %d\n",ret);
return 0;
}
4.在不使用strcat的情况下实现其功能:
#include<stdio.h>
int mystrcat(char *pstr1, char *pstr2)
{
while(*pstr1 != '\0')
{
pstr1++;
}
while(*pstr2 != '\0')
{
*pstr1 = *pstr2;
pstr1++;
pstr2++;
}
return 0;
}
int main(void)
{
char str1[32] = {0};
char str2[32] = {0};
gets(str1);
gets(str2);
mystrcat(str1,str2);
printf("str1 = %s\n",str1);
return 0;
5.判断内存大小端:
#include<stdio.h>
union s
{
char a ;
int b;
};
int main(void)
{
union s s1;
s1.b = 1;
if(s1.a)
{
printf("xiao duan!\n");
}
else
{
printf("da duan!\n");
}
return 0;
}