strlen,strcpy,strcat,strcmp,strchr 的模拟实现
来源:互联网 发布:上传淘宝的照片不清晰 编辑:程序博客网 时间:2024/06/09 06:46
c语言中对于字符串的处理是非常不方便的。因为C语言中字符串本质上是一个字符数组,一个常量指针。
模拟实现一下字符串的这些常用函数,加深对数组及常量指针的理解:
//// Created by cat on 2017/10/22.//#include <stdio.h>/*对字符串函数的模拟实现*/int strlen(const char *__s);int strcmp(const char *__s1, const char *__s2);char *strcat(char *dst, const char *src);char *strcpy(char *dst, const char *src);char *strchr(const char *__s, int __c);char *strstr(const char *__big, const char *__little);int main(int argc, char const *argv[]){ printf("strlen(Hello) = %d\n", strlen("Hello")); printf("strcmp(abc,abc) = %d\n", strcmp("abc", "abc")); char a[15] = "hello"; char b[] = "world"; printf("strcat = %s\n",strcat(a,b) ); char c[] = "Hello"; char d[] = "world"; printf("strcpy = %s\n", strcpy(c,d)); char s[] = "python,hello"; char p = 't'; printf("strchr = %s\n", strchr(s,p)); return 0;}char *strstr(const char *__big, const char *__little){ // todo return NULL;}char *strchr(const char *s1, int c){ int i=0; while(1){ // printf("s1 = %c\n", *(s1+i)); if (*(s1+i)==c ){ return (char *)(s1+i); // 这里必须强制转换一下,否则运行失败 } if(*(s1+i)=='\0'){ break; } i +=1; } return NULL;}char *strcpy(char *s1, const char *s2){ int i=0; while(1){ char t = s2[i]; if('\0' == t){ break; } s1[i] = s2[i]; i++; } return s1;}char *strcat(char *s1, const char *s2){ int s1len = strlen(s1); int i=0; while(1){ char t = s2[i]; if('\0' == t){ break; } s1[s1len + i] = s2[i]; i++; } return s1;}int strcmp(const char *s1, const char *s2){ int totals1 = 0; int i=0; while(1){ char t = s1[i]; if('\0' == t){ break; } totals1 += (int)t; i++; } int totals2 = 0; i = 0; while(1){ char t = s2[i]; if('\0' == t){ break; } totals2 += (int)t; i++; } return totals1 - totals2;}int strlen(const char *str){ int len = 0; int i = 0; while(1){ char t = str[i]; if( '\0'==t ){ break; } // printf("t = %c ", t ); i++; len = i; } return len;}/*console:strlen(Hello) = 5strcmp(abc,abc) = 0strcat = helloworldstrcpy = worldstrchr = thon,hello[Finished in 0.4s]*/
阅读全文
0 0
- strlen,strcpy,strcat,strcmp,strchr 的模拟实现
- 模拟实现strlen/strcpy/strcat/strcmp/strstr/strchr/函数
- 模拟实现strlen、strcpy、strncpy、strcat、strcmp
- 模拟实现strcpy,strcmp,strcat,strstr.strlen
- 模拟实现strlen、strcpy、strcat、strcmp函数
- strlen strcmp strcpy strcat strchr strstr 实现(指针)
- strlen strcmp strcpy strcat strchr strstr 基础实现
- strlen,strcpy,strcat,strcmp,strstr,memcpy,的模拟实现方式
- strcpy(),strcat(),strlen(),strcmp(),strstr(),strchr()等函数的使用。
- C++常见字符串操作函数的实现(strcpy/strcat/strcmp/strlen/strchr/strstr/strpbrk/strrev等)
- 模拟实现strcpy、strcat、strstr、strchr、strcmp、memcpy、memmove
- strcpy, strcmp, strcat, strstr, strlen的实现
- strlen/strcmp/strcat/strcpy的实现
- strlen,strcpy,strcat,strcmp函数的实现
- strcat, strcpy, strlen, strcmp实现
- 模拟实现strstr,strcpy,strlen,strcat,strcmp,memcpy,memmove
- 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove
- C语言模拟实现strcpy、strlen、strcmp、strcat
- UVa10084
- mysql 触发器使用及详解
- angularjs之增删改查2
- 这是增删改查的表格
- angular表格添加+查找+修改
- strlen,strcpy,strcat,strcmp,strchr 的模拟实现
- 【poj 3469 】 Dual Core CPU 【最大流+最小割建图】
- https的具体实现
- ButterKnife的配置
- 修改
- HDU 5935 Car
- 防火墙
- OKhttp网络获取框架使用
- 八(1)4 三元组稀疏矩阵表示的实现及应用