strlen strcmp strcpy strcat strchr strstr 基础实现
来源:互联网 发布:pc短信群发软件 编辑:程序博客网 时间:2024/05/19 21:59
#include <stdio.h>
#include <assert.h>
int mystrlen(char *string)
{
int i = 0;
while (string[i] != '\0')
i++;
return i;
}
int mystrcmp(const char *string1, const char *string2)
{
int len_string1, len_string2;
int len_max, i = 0;
assert(string1 != NULL && string2 != NULL);
len_string1 = mystrlen(string1);
len_string2 = mystrlen(string2);
len_max = (len_string1 > len_string2 ? len_string1 : len_string2);
while ( i < len_max )
{
if (string1[i] > string2[i])
return 1;
else if (string1[i] < string2[i])
return -1;
else
i++;
}
return 0;
}
char *mystrcpy(char *dst, const char *src)
{
int len_src, i;
assert(dst != NULL && src != NULL);
len_src = mystrlen(src);
for (i=0; i<=len_src; i++) // '\0' 包括在内
dst[i] = src[i];
return dst;
}
/*char *mystrcat( char *dst, const char *src )
{
int len_dst, len_src;
int i ;
assert(dst != NULL && src != NULL);
len_dst = mystrlen(dst);
len_src = mystrlen(src);
for (i=0; i<=len_src; i++) // '\0' 包括在内
dst[len_dst + i] = src[i];
return dst;
}*/
char *mystrcat( char *strDestination, const char *strSource )
{
int i = 0;
int len_strDestination;
int len_strSource;
assert((strDestination!=NULL)&&(strSource!=NULL));
len_strDestination = mystrlen(strDestination);
len_strSource = mystrlen(strSource); //计算长度
for (i=0;i<=len_strSource;i++)
{
strDestination[len_strDestination+i]=strSource[i]; //"fdggf" "yyyy"
}
return strDestination;
}
char *mystrchr(const char *string, char c)
{
int len_string, i = 0;
assert(string != NULL);
len_string = mystrlen(string);
while (i < len_string)
{
if (string[i] == c)
return (string + i);
else
i++;
}
return NULL;
}
char *mystrstr(const char *str1, const char *str2)
{
int i, j;
assert(str1 != NULL && str2 != NULL);
for (i=0; *(str1 + i) != 0;)
{
for (j=0; *(str2 + j) != 0;)
{
if ( *(str1+i) == *(str2+j))
{
i++;
j++;
if ( *(str2 + j) == 0)
return str1 + i - j;
}
else
i = i - j + 1;
}
}
return NULL;
}
#include <assert.h>
int mystrlen(char *string)
{
int i = 0;
while (string[i] != '\0')
i++;
return i;
}
int mystrcmp(const char *string1, const char *string2)
{
int len_string1, len_string2;
int len_max, i = 0;
assert(string1 != NULL && string2 != NULL);
len_string1 = mystrlen(string1);
len_string2 = mystrlen(string2);
len_max = (len_string1 > len_string2 ? len_string1 : len_string2);
while ( i < len_max )
{
if (string1[i] > string2[i])
return 1;
else if (string1[i] < string2[i])
return -1;
else
i++;
}
return 0;
}
char *mystrcpy(char *dst, const char *src)
{
int len_src, i;
assert(dst != NULL && src != NULL);
len_src = mystrlen(src);
for (i=0; i<=len_src; i++) // '\0' 包括在内
dst[i] = src[i];
return dst;
}
/*char *mystrcat( char *dst, const char *src )
{
int len_dst, len_src;
int i ;
assert(dst != NULL && src != NULL);
len_dst = mystrlen(dst);
len_src = mystrlen(src);
for (i=0; i<=len_src; i++) // '\0' 包括在内
dst[len_dst + i] = src[i];
return dst;
}*/
char *mystrcat( char *strDestination, const char *strSource )
{
int i = 0;
int len_strDestination;
int len_strSource;
assert((strDestination!=NULL)&&(strSource!=NULL));
len_strDestination = mystrlen(strDestination);
len_strSource = mystrlen(strSource); //计算长度
for (i=0;i<=len_strSource;i++)
{
strDestination[len_strDestination+i]=strSource[i]; //"fdggf" "yyyy"
}
return strDestination;
}
char *mystrchr(const char *string, char c)
{
int len_string, i = 0;
assert(string != NULL);
len_string = mystrlen(string);
while (i < len_string)
{
if (string[i] == c)
return (string + i);
else
i++;
}
return NULL;
}
char *mystrstr(const char *str1, const char *str2)
{
int i, j;
assert(str1 != NULL && str2 != NULL);
for (i=0; *(str1 + i) != 0;)
{
for (j=0; *(str2 + j) != 0;)
{
if ( *(str1+i) == *(str2+j))
{
i++;
j++;
if ( *(str2 + j) == 0)
return str1 + i - j;
}
else
i = i - j + 1;
}
}
return NULL;
}
- strlen strcmp strcpy strcat strchr strstr 基础实现
- strlen strcmp strcpy strcat strchr strstr 实现(指针)
- 模拟实现strlen/strcpy/strcat/strcmp/strstr/strchr/函数
- strcpy(),strcat(),strlen(),strcmp(),strstr(),strchr()等函数的使用。
- c函数strcpy() ,strcat(),strcmp(), strlen(), strchr() ,strstr() 使用整理
- strcpy, strcmp, strcat, strstr, strlen的实现
- 模拟实现strcpy,strcmp,strcat,strstr.strlen
- 自定义实现字符串处理函数 strlen strcmp strcpy strncpy strcat strncat strchr strstr
- 自定义实现字符串处理函数 strlen strcmp strcpy strncpy strcat strncat strchr strstr
- 自主编程实现strlen,strcpy,strcmp,strcnpy,strcat,strstr,strchr库函数
- C++常见字符串操作函数的实现(strcpy/strcat/strcmp/strlen/strchr/strstr/strpbrk/strrev等)
- strlen,strcpy,strcat,strcmp,strstr
- strcpy/strcmp/strlen/strcat/strstr
- 模拟实现strcpy、strcat、strstr、strchr、strcmp、memcpy、memmove
- strlen,strcpy,strcat,strcmp,strchr 的模拟实现
- 自己实现memcpy/strcpy/strcmp/strcat/strlen/strstr
- 模拟实现strstr,strcpy,strlen,strcat,strcmp,memcpy,memmove
- 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove
- POJ2478 Farey Sequence,欧拉函数
- Nutch中的Injector为什么按照url链接的个数执行多次Map()函数?
- strlen strcmp strcpy strcat strchr strstr 实现(指针)
- iOS地图的注释(Annotation)
- hdu3047
- strlen strcmp strcpy strcat strchr strstr 基础实现
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- Hypertable - 架构
- FFMpeg框架代码阅读
- POJ 2823
- Textbox控件插入换行符的问题
- HDU--1198Farm Irrigation
- 图的存储与遍历
- Linux学习笔记(十三)