본문 바로가기

study/C/C++

c++ string 함수 구현









#include<iostream>

using namespace std;


int mystrlen(const char *pstring);

int mystrcpy(char *pdev,const char *psrc);

int mystrcat(char *pdev,const char *psrc);

int mystrcmp(char *pdev,const char *psrc);

int main(void)

{

char a[10]="aaa";

cout<<"mystrlen(a) : "<<mystrlen(a)<<endl;

mystrcpy(a,"123");

cout<<"mystrcpy(a,\"123\") : "<<a<<endl;

mystrcat(a,"aaa");

cout<<"mystrcat(a,\"aaa\") : "<<a<<endl;

cout<<"mystrcmp(a,\"123aaa\") : "<<mystrcmp(a,"123aaa")<<endl;

return 0;

}

int mystrlen(const char *pstring)

{

int i = 0;

while(pstring[i]!=NULL)

{

i++;

}

return i;

}

int mystrcpy(char *pdev,const char *psrc)

{

int i = 0;

while(psrc[i]!=NULL)

{

pdev[i]=psrc[i];

i++;

}

pdev[i] =NULL;

return 0;

}

int mystrcat(char *pdev,const char *psrc)

{

int dlen =mystrlen(pdev);

int slen =mystrlen(psrc);

for(int i=0;i<slen;i++)

{

pdev[dlen+i]= psrc[i];

}

pdev[dlen+slen]=NULL;

return 0;

}

int mystrcmp(char *pdev,const char *psrc)

{

if(mystrlen(pdev)>mystrlen(psrc))

{

return 1;

}

else if(mystrlen(pdev)<mystrlen(psrc))

{

return -1;

}

for(int i=0;i<mystrlen(pdev);i++)

{

if(pdev[i]>psrc[i])

{

return 1;

}

else if(pdev[i]<psrc[i])

{

return -1;

}

}

return 0;

}


'study > C/C++' 카테고리의 다른 글

복사생성자  (0) 2013.02.22
포인터 변수와 주소  (0) 2013.01.29
동적할당된 다중(이중) 포인터를 인자로 함수 호출  (0) 2013.01.23
이중포인터 동적할당?!?  (0) 2013.01.22
c++ 연산자,자료형  (0) 2012.12.20