大部分公司的笔试题都会涉及到写一个字符串的操作函数,并且不调用库函数。
虽然这些函数经常都会用到,但是在笔试现场还真不一定能做对,要保证写出来还要写对还是需要看平时的积累的,毕竟笔试的时候没有机器给你调试,就只有看个人对代码的理解了,所以,多练习是没错的,毕竟机会难得。
1.strcpy() 字符串拷贝函数
//将src里面的字符串拷贝到dest
char *MyStrcpy(char *dest,const char *src){
if(NULL == dest || NULL == src){
return NULL;
}
char *ret = dest;
while((*dest++ = *src++) != '\0');
return ret;
}
注意:返回一个char*指针是为了实现链式表达式,如 :
int len = strlrn(MyStrcpy(dest,"hello world"));
2.strcmp()字符串比较函数
strcmp(s1,s2):
1、两个字符串从左到右按照 ACSII 码值大小比较,直到出现不同的字符或者遇到’\0’为止;
2、若出现不相同的字符,则以第一对不相同的字符的比较结果为准;
3、字符串1等于字符串2,函数值为0,字符串1大于字符串2,函数值为正整数,字符串1小于字符串2,函数值为负整数;
int MyStrcmp(const char *str1,const char *str2){
int ret;
while(!(ret = *str1-*str2)&&str2){
str1++;
str2++;
}
if(ret>0)return 1;
if(ret<0)return -1;
return ret;
}
3.strcat()字符串连接函数
strcat(str1,str2) 将字符串str2拼接在str1后面;
char *MyStrcat(char *dest, const char *src){
char *strdest = dest;
int i=0;
while(*strdest++ != '\0'){
i++;
}
while((dest[i++] = src[j++]) != '\0');
return dest;
}
4.将字符串转化整型数
5.整型数转化为字符串
6.strstr()判断一个字符串里面是否包含另一个字符串