c语言中字符串操作的工具类(三)

2015-01-22 20:57:56 · 作者: · 浏览: 60
长度

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");

}