1、字符串求长度
#include <stdio.h>
int Mystrlen1(const char *str)
{
int i=0;
while(*(str++)!='\0')
{
i++;
}
return i;
}
int Mystrlen2(const char *str)
{
int i;
for(i=0;*(str++)!='\0';i++);
return i;
}
int main()
{
char a[100];
scanf("%s",a);
printf("%d\n",Mystrlen1(a));
printf("%d\n",Mystrlen2(a));
}
运行结果:
2、字符串拷贝(复制)
#include <stdio.h>
void Mystrcpy1(char *des,char *src)
{
while(*src!='\0')
{
*(des++)=*(src++);
}
*des='\0';
}
void Mystrcpy2(char *des,char *src)
{
int i;
for(i=0;*src!='\0';i++)
{
*(des++)=*(src++);
}
*des='\0';
}
void Mystrcpy3(char *des,char *src)
{
while( *(des++)=*(src++));
}
int main()
{
char a[100]="abcd";
char b[100]="123";
Mystrcpy1(a,b);
printf("%s\n",a);
char c[100]="abcd";
char d[100]="123";
Mystrcpy2(c,d);
printf("%s\n",c);
char e[100]="abcd";
char f[100]="123";
Mystrcpy3(e,f);
printf("%s\n",e);
}
运行结果:
3、字符串链接
#include <stdio.h>
void Mystrcat(char *des,const char *src)
{
while(*des!='\0')
{
des++;
}
while(*src!='\0')
{
*des++=*src++;
}
*des='\0';
}
int main()
{
char a[100]="abcd";
char b[100]="123";
Mystrcat(a,b);
printf("%s\n",a);
}
运行结果:
4、字符串比较
#include <stdio.h>
int Mystrcmp(const char *str1,const char *str2)
{
while(*str1==*str2 && *str1!='\0')
{
str1++;
str2++;
}
if(*str1=='\0'&&*str2=='\0')
{
return 0;
}
else
{
return *str1-*str2;
}
}
int main()
{
printf("%d\n",Mystrcmp("abc","ab"));
printf("%d\n",Mystrcmp("ab","abc"));
printf("%d\n",Mystrcmp("abc","abd"));
printf("%d\n",Mystrcmp("ab","ab"));
printf("%d\n",Mystrcmp("abad","abc"));
}
运行结果: