输出字符串长度
#include<stdio.h>
size_t MyStrlen(const char* s )
{
int count = 0;
while(s[count]!='\0')
{
count++;
}
return count;
}
int main(void)
{
char buf[32] = "hello world";
size_t ret = MyStrlen(buf);
printf("ret=%lld", ret);
return 0;
}
char *my_strcpy(char *dst,const char *src)
{
assert(dst != NULL);
assert(src != NULL);
char *ret = dst;
while((* dst++ = * src++) != '\0')
;
return ret;
}
将一个字符串粘贴到另一个
#include<stdio.h>
char* Mystrcpy(char *dest,const char* src)
{
if(dest==0||src==0)
{
return 0;
}
int i = 0;
while(src[i]!='\0')
{
dest[i] = src[i];
i++;
}
dest[i] = src[i];//赋值"\0"
}
int main(void)
{
char buf1[32] = "hello world";
char buf2[32] = "nihao beijing";
Mystrcpy(buf1, buf2);
printf("buf1=%s", buf1);
for (int i = 0; i < 32; i++)
{
printf("%c [%d]\0", buf1[i], buf1[i]);
}
return 0;
}
将一个字符串接在宁一个字符串后
#include<stdio.h>
char* Mystrcat(char* dest, const char* src)
{
if (dest == 0 || src == 0)
{
return 0;
}
int i = 0;
int j = 0;
while (dest[i] != '\0')
{
i++;
}
while (src[j] != '\0')
{
dest[i++] = src[j++];
}
dest[i] = src[j];
return dest;
}
int main(void)
{
char buf1[32] = "hello world";
char buf2[32] = "nihao beijing";
Mystrcat(buf1, buf2);
printf("buf1=%s", buf1);
for (int i = 0; i < 32; i++)
{
printf("%c [%d]\0", buf1[i], buf1[i]);
}
return 0;
}
比较两个字符串
#include<stdio.h>
int Mystrcmp(const char* dest, const char* src)
{
int i = 0;
int j = 0;
if(dest==NULL||src==NULL)
{
return 0;
}
while (dest != '\0' || src != '\0')
{
if (dest[i] > src[j])
{
return 1;
}
else if (dest[i] < src[j])
{
return -1;
}
else
{
return 0;
}
}
}
int main(void)
{
char buf1[32] = "hello world";
char buf2[32] = "nihao beijing";
int ret = Mystrcmp(buf1, buf2);
if (ret > 0)
{
printf("buf1>buf2");
}
else if (ret < 0)
{
printf("buf1<buf2");
}
else {
return 0;
}
}