模拟实现不受限制的字符串函数(strcat、strcpy、strcmp)
来源:互联网 发布:关于清朝的纪录片 知乎 编辑:程序博客网 时间:2024/06/05 13:51
使用这些函数时,需要注意到以下几点:
1)目标空间足够大,
2)原字符串有‘\0
目标空间可改 (strcpy 字符串拷贝)
目标字符串中’\0’被覆盖(strcat 字符串追加)
目标空间不可改(strcmp 字符串比较)
3)断言(assert)
三个库函数的原型为下:
char *strcpy( char *strDestination, const char *strSource );char *strcat( char *strDestination, const char *strSource );int strcmp( const char *string1, const char *string2 );
//模拟实现strcpy(字符串拷贝)
char*my_strcpy(char* pdest, const char*psrc){ char *ret = pdest; assert(pdest); assert(psrc); while (*psrc != NULL) { *pdest = *psrc; pdest++; psrc++; } return ret;}int main(){ int *arr = "abcdef"; int buf[20] = { 0 }; my_strcpy(buf, arr); printf("%s\n", buf); system("pause"); return 0;}
//模拟实现strcmp(字符串比较)
int my_strcmp(const char *string1, const char *string2){ assert(string1 != NULL); assert(string2 != NULL); while (*string1 == *string2) { if (*string1 == '\0') return 0; string1++;//如果相等,则一直向后比较 string2++; } return *string1 - *string2;//如果两者不相等,则利用ascll值返回}int main(){ char *arr1 = "abcde"; char *arr2 = "abcd"; int ret = my_strcmp(arr1, arr2); printf("%d\n", ret); system("pause"); return 0;}
//strcat字符串追加
char *strcat( char *strDestination, const char *strSource );char *my_strcat(char *pdest, const char *pstr){ assert(pdest!= NULL); assert(pstr != NULL); char *ret = pdest; while (*pdest != '\0')//找目标空间的'\0' { pdest++; } while (*pstr != '\0')//拷贝字符串到目标空间 { *pdest = *pstr; *pdest++; *pstr++; } return ret;}int main(){ char arr[20] = "hello "; char*p = "world"; my_strcat(arr, p); printf("%s\n", arr); system("pause"); return 0;}
学习这些字符串比较函数,对我们今后学习字符串有很大的帮助,希望这些可以帮助到大家。
阅读全文
0 0
- 模拟实现不受限制的字符串函数(strcat、strcpy、strcmp)
- 字符串处理函数的模拟实现(strlen、strstr、strcat、strcmp、strcpy、memmove、memcpy)
- C语言字符串函数的模拟实现(strlen、strcpy、strcat、strstr 、strcmp)
- 模拟实现strlen、strcpy、strcat、strcmp函数
- 模拟实现 strcpy strcat strstr strcmp 函数
- 和字符串有关的函数的模拟实现 strlen strcpy strcat strstr strcmp
- c语言中有关字符串函数strcpy,strcmp,strcat,strstr的模拟实现
- 字符串训练(一)模拟实现strlen,strcmp,strcpy,strcat函数
- 字符串函数模拟实现(strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove)
- strlen, strcpy, strcat, strcmp, memset... (字符串操作函数的实现)
- 模拟实现strcpy,strcat,strcmp
- strlen,strcpy,strcat,strcmp函数的实现
- strcmp、strcat、strcpy、strncpy函数的实现
- 基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)
- 基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)
- 基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)
- c语言学习笔记(字符串函数strcmp,strcat,strcpy,strlen的简单实现)
- C语言中字符串相关函数的实现(strcat strlen strcmp strcpy memcpy)
- 基础搜索题 最少转弯问题
- POJ 1141-Brackets Sequence(区间DP)
- hdu 2046 骨牌铺方格
- 小媛在努力
- 弱题(循环矩阵)
- 模拟实现不受限制的字符串函数(strcat、strcpy、strcmp)
- BZOJ 2243 染色 线段树+树链剖分
- 杭电acm 4557非诚勿扰(排序+字符串)
- JavaScript断点调试高级教程
- 关于js中&&和||的另类用法
- jquery 获取索引值在一定范围的列表
- 函数_如何在软件开发中合理的设计函数来解决实际问题
- react项目实战(权限模块开发八)js文件分开打包
- 【POJ