用C语言实现strcpy、strcmp、strlen函数,是一个比较经典的考验一个人编程水平与能力的例子,也是很多大公司、小公司的面试题目,IBM曾经也考过写strcpy原型,这几个函数在面试的时候经常被考到,很具有代表性,突然被问起还真有点措手不及呢。现在记下供大家学习和以后温习:(下面的程序经本人通过),今特记录如下:
#include<stdio.h>
#include<assert.h>
int strlena(const char *str)
{
int len=0;
assert(str!=NULL);
while(*str++)
{
len++;
}
return len;
}
main()
{ char str1[100];
scanf("%s",str1);
printf("%d\n",strlena(str1));
}
#include<stdio.h>
#include<assert.h>
int strcmpa(const char *str1, const char *str2)
{ int len=0;
assert((str1!=NULL)&&(str2!=NULL));
while (*str1 && *str2 && (*str1 == *str2))
{
*str1++;
*str2++;
}
return *str1-*str2;
}
main()
{ char str1[100],str2[100];
scanf("%s",str1);
scanf("%s",str2);
printf("%d\n",strcmpa(str1,str2));
}
#include<stdio.h>
#include<assert.h>
char *strcpya(char *str1,const char *str2)
{ char *cp=str1;
assert((str1!=NULL)&&(str2!=NULL));
while(*str2)
{
*str1++=*str2++;
}
*str1='\0';
return cp;
}
main()
{ char str1[100],str2[100];
scanf("%s",str1);
scanf("%s",str2);
printf("%s\n",strcpya(str1,str2));
}