长度
int movelength = mystrlen(pos);//求出现在要移动的长度
int insertlength = strlen(str);//要求出插入的长度
for (int i = nowlength; i >= nowlength - movelength; i--)
{
string->p[i + insertlength] = string->p[i];//字符移动
}
for (int j = 0; j < insertlength; j++)
{
string->p[nowlength - movelength + j] = str[j];//赋值拷贝
}
}
else
{
int nowlength = mystrlen(string->p);//求出当前长度
int movelength = mystrlen(pos);//求出现在要移动的长度
int insertlength = strlen(str);//要求出插入的长度
for (int i = nowlength; i >= nowlength - movelength; i--)
{
string->p[i + insertlength] = string->p[i];//字符移动
}
for (int j = 0; j < insertlength; j++)
{
string->p[nowlength - movelength + j] = str[j];//赋值拷贝
}
}
}
void changefirstchar(mystring *string, const char oldchar, const newchar)//改变字符
{
char *pstr = string->p;
while (*pstr != '\0')
{
if (*pstr == oldchar)//查找
{
*pstr = newchar;//赋值
return;
}
pstr++;
}
}
void changefirststring(mystring *string, char * const oldstring, char *const newstring)//改变字符串
{
char *pfind = findfirststring(string, oldstring);//找到位置
if (pfind != NULL)
{
deletefirststring(string, oldstring);//删除
addstring(string, newstring, pfind);//插入
}
}
3.编写main.c
#include
#include
#include "mystring.h"
void main()
{
mystring string1;
initwithstring(&string1, "note");
printfstring(&string1);
//backaddchar(&string1, 'd');
backaddstring(&string1, "padnotepadnotepad");
printfstring(&string1);
while (findfirststring(&string1, "notepad"))
{
changefirststring(&string1, "notepad", "123456789");
}
//char *p = findfirstchar(&string1, 't');
//if (p != NULL)
//{
// addstring(&string1,"12345", p);
//}
//deletefirstchar(&string1, 'e');
//deletefirststring(&string1, "pad");
//char *strp = findfirstchar(&string1, 'a');
//*strp = 'A';
/*char *strp = findfirststring(&string1,"ada");
if (strp != NULL)
{
*strp = 'X';
}*/
printfstring(&string1);
//run(&string1);
system("pause");
}