项目结构
头文件.h
#include<stdio.h> #include<stdlib.h> #include<string.h> //字符串封装,需要库函数 //不需要库函数 struct CString { char *p;//保存字符串首地址 int real_len;//实际长度 }; typedef struct CString mystring;//简写 //字符串:初始化,打印,删除(字符,字符串) //查找(字符,字符串) //修改字符串,字符、字符串替换 //尾部增加,任意位置增加(字符,字符串) void init(mystring *string);//原封不动初始化 void init_len(mystring *string, int length);//开辟长度,内存清零 void init_string(mystring *string, char *copystring);//初始化并拷贝字符串 void printf_string(mystring *string);//打印 void back_addchar(mystring *string,char ch);//增加字符 void back_addstring(mystring *string,char *str);//增加字符串 void run(mystring *string);//执行指令 char * find_firstchar(mystring *string, char ch);//返回第一个找到的字符的地址 char * find_firststring(mystring *string, char *str);//返回第一个找到的字符串的地址 int delete_char(mystring *string,const char ch);//删除第一个找到的字符 int delete_string(mystring *string,char * const str);//删除第一个找到的字符串,const在*右边表明,指针不可修改 void add_char(mystring *string,char ch,char *pos);//任意位置增加字符 void add_string(mystring *string, char *str, char *pos);//任意位置增加字符串 void change_firstchar(mystring *string,const char oldchar,const char newchar);//改变字符 void change_firststring(mystring *string, char * const oldstring, char * const newstring);//改变字符串
字符串.c
#define _CRT_SECURE_NO_WARNINGS #include"字符串.h" int mystrlen(char *p) { if (p == NULL) return -1; int length = 0; while (*p) { length++; p++; } return length; } char *mystrcpy(char *dst, const char *src) {//const限定不被意外修改 if (dst == NULL || src == NULL) return NULL; char *dst_copy = dst;//保留地址 while (*src) { *dst = *src;//赋值字符 src++; dst++; } *dst = '