C语言字符串相关方法的实现
2015-03-27 14:33
405 查看
int my_strlen(const char *str); char * my_strcpy(char *dest,const char *src); char * my_strcat(char *dest,const char *src); int my_strcmp(const char *dest,const char *src); const char* my_strchr(const char *str,int ch); const char* my_strstr(const char *str,const char *substr);
int my_strlen(const char *str)
{
const char *eos=str;
while (*eos++);
return ((int)(eos-str-1));
}
char * my_strcpy(char *dest,const char *src)
{
char *eos=dest;
while (*dest++=*src++);
return eos;
}
char * my_strcat(char *dest,const char *src)
{
char *eos=dest;
while (*dest)
dest++;
while (*dest++=*src++);
return eos;
}
int my_strcmp(const char *dest,const char *src)
{
int res=0;
while (!(res=*dest-*src)&&*dest)
dest++,src++;
/*
while (*dest) //dest没有到字符串结尾时,继续循环
{
res=*dest-*src;
if (res!=0) //如果字符不相等跳出循环,结果已经明确,没必要在比较下去了
{
break;
}
dest++;src++;
}*/
return res;
}
const char* my_strchr(const char *str,int ch)
{
while (*str!=ch&&*str)
str++;
if (*str==ch)
return str;
return 0;
}
const char* my_strstr(const char *str,const char *substr)
{
const char *p=str;
const char *s1,*s2;
if (!*substr)
return str;
while (*p)
{
s1=p;
s2=substr;
while (*s1&&*s2&&!(*s1-*s2))//str和substr没有结束并且,str和substr相等时才循环
s1++,s2++;
if (!*s2)
return p;
p++;
}
return 0;
}
#include <stdio.h> #include <string.h> #include "mystring.h" int main() { char *str="itcastsd"; char arr[]="hda,fd.dsa fe\rew]gff"; char *delim=",. \]"; char *result; //printf("%d\n",my_strlen("Hello")); //printf("%s\n",my_strcpy(dest,src)); //printf("%s\n",my_strcat(dest,src)); //printf("%d\n",my_strcmp("hglo","hflo")); //printf("%s\n",my_strstr(str,"ca")); /******strtok使用******/ result=strtok(arr,delim); printf("%s\n",result); while (result=strtok(NULL,delim)) { printf("%s\n",result); } /************/ getchar(); return 0; }
相关文章推荐
- 在区域内绘制宽字符串多行自动换行的c语言实现方法
- 如何实现从控制台输入c语言字符串密码,然后用oc的中的NSString方法来验证
- C语言三种方法实现字符串右旋
- C语言字符串反转实现【采用头指针和尾指针方法完成】
- 使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
- C语言两种方法实现字符串反转
- C语言现代方法之实现字符串的替换
- C语言中字符串相关函数的实现(strcat strlen strcmp strcpy memcpy)
- C语言字符串相关库函数的实现strcpy、memcpy、strncpy、strcat、strncpy、memset、memcpy、strcpy
- 用C语言实现字符串反转函数strrev的经典方法
- 请借助Array内置对象的相关方法,实现字符串倒序排列
- C语言实现字符串拷贝函数的几种方法
- 用C语言实现字符串反转函数strrev的经典方法
- 输入一个长度未知的字符串,用动态分配内存的方法(C语言实现)
- C语言实现将字符串转换为数字的方法
- c语言使用指针实现模拟java/c# string.concat字符串串联方法
- C语言中求字符串长度的函数的几种实现方法
- C语言三种方法实现字符串左旋
- c语言:两种方法实现字符串拷贝strcpy
- C语言字符串原地压缩实现方法