字符串之“下回分解”
一,Mystrcmp字符串比较
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1 < s2时,返回值<0
当s1 = s2时,返回值=0
当s1 > s2时,返回值>0
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<assert.h>
int Mystrcmp(const char *str1,const char *str2)
{
int tmp = 0;//保存当前两个字符的差值
assert(str1 != NULL && str2!= NULL);
if(str1 == NULL || str2 == NULL )
{
return 0;
}
while((tmp = *str1-*str2) == 0)
{
str1++;
str2++;
}
return tmp;
}
int main()
{
printf("%d\n",Mystrcmp("asadsf","x"));
printf("%d\n",Mystrcmp("sasf","sadx"));
printf("%d\n",Mystrcmp("s","s"));
return 0;
}
输出如下:
二,字符串连接
功能:字符串连接s1和s2
一般形式:Mystrcpy(字符串1,字符串2)
说明:s1 + s2 =s1去掉’\0’+s2
char *Mystrcat(char *des,char *src)
{
assert(des!=NULL && src!=NULL);
if(des==NULL || src==NULL)
return NULL;
char *p=des;
while(*des != NULL)
*des++;
while(*des++ = *src++);
return des;
}
int main()
{
char str1[10] = "abc";
char str2[10] = "xyz";
Mystrcat(str1,str2);
printf("%s ",str1);
return 0;
}
输出如下:
字符串是个很深的坑,小编之前还写了字符串转数字,数字转字符串,如有需要,可以翻阅