自己动手写字符串库函数 二(C语言实现)
来源:互联网 发布:科研立项题目 软件 编辑:程序博客网 时间:2024/05/17 22:08
接着上一篇的自己动手写字符串你库函数 一(C语言),接着往下面写
//具体实现 string.c//追加字符void Append_Char(string*strs, const char ch){if (IsEmpty(strs) != 0 && ch != NULL){int strLen = my_StrLen(strs->str);//需要重新分配空间strs->str = (char*)realloc(strs->str, strs->len + sizeof(char));strs->len += 1; //长度加+1*(strs->str+strs->len - 2) = ch;*(strs->str+strs->len - 1) = '\0';}}//追加字符串 相当于StrCat函数void Append_Str(string*strs, const char* s){if (IsEmpty(strs) != 0 && s != NULL){int desStrLen = my_StrLen(strs->str);int sourStrLen = my_StrLen(s);if (desStrLen + sourStrLen > strs->len){//int needLen = desStrLen + sourStrLen - strs->len;//重新分配空间 +1是为了最后一个为‘\0’strs->len = desStrLen + sourStrLen + 1;strs->str = (char*)realloc(strs->str, strs->len);while (*s != '\0'){*(strs->str+desStrLen++) = *s++;}}else{strs->len = desStrLen + sourStrLen + 1;while (*s != '\0'){*(strs->str+desStrLen++) = *s++;}}*(strs->str+desStrLen) = '\0';}}//在母串中查找字符char* my_Strchr(string*des, char ch){ char*des2 = des->str; if (IsEmpty(des) == 0) return NULL; while (*des2 != '\0') { if (*des2 == ch) return des2; else des2++; } return NULL;}//删除的指定的字符串void my_DelChar(string*des, char ch){ if (IsEmpty(des) == 0 || ch == NULL) return; else { char* des2 = my_Strchr(des, ch); char*des3 = des2; if (des2 == NULL) return; //将后面的向前移动 while (*des2 != '\0') { *des3++ = *++des2; } des->len -= 1; //长度减一 }}
//main函数中测试#include "String.h"int main(){ string strs; Init_With_Str(&strs,"tasklist"); //Append_Char(&strs,'a'); //Append_Str(&strs,"abc"); //char*flag= my_Strchr(&strs,'a'); my_DelChar(&strs,'a'); Print_String(&strs); getchar(); return 0;}
0 0
- 自己动手写字符串库函数 二(C语言实现)
- 自己动手写字符串库函数 一(C语言实现)
- 自己动手写字符串库函数 三(C语言实现)
- 自己动手写字符串库函数 四(C语言实现)
- 自己动手写C语言库函数(1) memcpy
- 自己动手写C语言库函数(2) memmove
- 自己动手写C语言库函数(3) strstr
- 自己动手写C语言库函数(4)strlen
- 自己动手写C语言库函数(5)strcpy
- 自己动手写C语言库函数(6) atoi
- C语言字符串库函数的实现
- C语言字符串库函数的实现
- C语言字符串库函数的实现
- C语言字符串库函数的实现
- C语言字符串库函数的实现
- C语言字符串库函数的实现
- C语言字符串库函数的实现
- 实现C语言字符串操作的库函数
- 无需编码开发快速设计互动式UI - uilang
- oracle笔记
- 时间管理去何方
- 最大连续子列之和
- 【JAVASE】BoneCP 教程
- 自己动手写字符串库函数 二(C语言实现)
- 最快速的Github入门,没有之一(三)
- C#下JSON字符串的反序列化
- 最快速的Github入门,没有之一(二)
- 射线的应用
- OpenCV实现遍历文件夹下所有文件
- 最快速的Github入门,没有之一(四)
- 协程
- [leetcode 155] Min Stack