C语言模拟实现strcpy、strncpy、strcmp、strcat、strstr
来源:互联网 发布:女程序员物品 编辑:程序博客网 时间:2024/06/06 02:18
1,模拟实现strcpy
功能:字符串拷贝函数
代码:
char* my_strcpy(char* dest, const char* src){ assert(dest); assert(src); char* ret = dest; while (*dest++ = *src++) { ; } return ret;}
测试:
int main(){ char str1[20];//必须给足够大的空间保证str2能存储 char* str2 = "HowAreYou"; char* ret = my_strcpy(str1, str2); printf("%s\n", ret); system("pause"); return 0;}
2,模拟实现strncpy
功能:类似于strcpy,可以将字符串中的n个字符拷贝
代码:
char* my_strncpy(char* dest, const char* src, int n){ assert(dest); assert(src); char* ret = dest; while (n) { *dest++ = *src++; n--; } if (*(dest - 1) != '\0'); { *dest = '\0'; } return ret;}
测试:
int main(){ char str1[5]; char* str2 = "abcdefg"; char* ret = my_strncpy(str1, str2,4); printf("%s\n", ret); system("pause\n"); return 0;}
3,模拟实现strcmp
功能:字符串比较函数,相等返回0,小于返回小于0的数,大于则返回大于0的数
代码:
int my_strcmp(char* arr, char* str){ assert(arr); assert(str); while (*arr == *str) { if (*arr == '\0' || *str == '\0') { return 0; } arr++; str++; } return *arr - *str;}
测试:
int main(){ char *p1 = "ab"; char *p2 = "abcd"; char *p3 = "defab"; printf("%d\n", my_strcmp(p1, p1)); //0 printf("%d\n", my_strcmp(p1, p2)); //-99 printf("%d\n", my_strcmp(p1, p3)); //-3 printf("%d\n", my_strcmp(p3, p1)); //3 system("pause\n"); return 0;}
4,模拟实现strcat
功能:字符串追加函数
代码:
char* my_strcat(char* dest, char* src){ assert(dest); assert(src); char* ret = dest; while (*dest) { *dest++; } while (*dest++ = *src++) { ; } return ret;}
测试:
int main(){ char str1[20] = "hello "; char* str2 = "world"; char* ret = my_strcat(str1, str2); printf("%s\n", ret); system("pause\n"); return 0;}
5,模拟实现strstr
功能:判断一个字符串是否是另一个字符串的子串,如果是,则返回在这个字符串中首次出现的位置,如果不是,返回NULL
代码:
char* my_strstr(const char* str, const char*substr){ const char* s1 = str; const char* s2 = substr; const char* cur = str; assert(str); assert(substr); if (*substr == '\0') { return str; } while (cur) { s1 = cur; s2 = substr; while (*s1 == *s2) { s1++; s2++; } if (*s2 == '\0') return cur; if (*s1 == '\0') return NULL; cur++; } return NULL;}
测试:
int main(){ const char* str = "abcdefg"; const char* substr = "bcd"; char* ret = my_strstr(str, substr); if (ret == NULL) { printf("No\n"); } else { printf("%s\n", ret); } system("pause\n"); return 0;}
阅读全文
1 0
- C语言模拟实现strcpy、strncpy、strcmp、strcat、strstr
- [C语言]模拟实现strcpy/strncpy/strcat/strncat/strcmp/strncmp/strstr
- 【C语言】、模拟实现strlen,strcmp,strcpy,strcat,strstr函数
- 模拟实现strcpy,strcmp,strstr,strncpy,strncmp,strcat,strlen函数
- 模拟实现strlen、strcpy、strncpy、strcat、strcmp
- strcpy/strncpy/strcat/strcmp/strlen函数的c语言实现
- 模拟实现strcpy,strcmp,strcat,strstr.strlen
- 模拟实现 strcpy strcat strstr strcmp 函数
- c语言中有关字符串函数strcpy,strcmp,strcat,strstr的模拟实现
- C语言字符串函数的模拟实现(strlen、strcpy、strcat、strstr 、strcmp)
- 模拟实现C语言库函数strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove
- 模拟实现strcmp,strncmp,strstr,strcat,strncat,strcpy,strncpy,strlen ,memcpy,memmove等函数
- strlen strcmp strcat strcpy strncpy strstr strchar函数的实现
- c语言:strcpy、strncpy、 Strcat、 Strcmp 、strchr、 strstr、 Strlen等函数功能
- 【C语言】模拟实现strcpy、strcat、strcmp函数
- C语言模拟实现strcpy、strlen、strcmp、strcat
- C语言:模拟实现strlen、strcpy、strcmp、strReverse、strcat函数
- 模拟实现strcpy,strncpy,strcat,strncat,strcmp,strncmp,memcpy,memmove
- 【HDU 2063】过山车(二分图最大匹配模板题)
- 手势密码 图形解锁 实现
- DynamicTreeDemo
- jQuery实现CheckBox全选、全不选
- SHU OJ 420 购买装备(假装背包,其实贪心)
- C语言模拟实现strcpy、strncpy、strcmp、strcat、strstr
- Android中ScrollView初始位置不在顶部问题
- JSON传输图片帮助类
- 自定义Behavior(一)
- 设置环境变量的步骤
- VS 2015 更换exe的图标
- 关于在不完全遮挡activity的时候dialog的显示问题
- Java+Selenium3方法篇46-自定义类库解决元素同步问题
- IntelliJ IDEA 如何重命名变量、文件、文件夹。--(说高级点就是【重构】)