2012. 7. 13. 14:47

include <stdio.h>
#include <math.h>
int mystrcpy(char *aptr, char *bptr);
int mystrcat(char *aptr, char *bptr, char *cptr);
int mystrlen(char *aptr);
int myatoi(char *aptr);

int main()
{
char arr1[80],arr2[80];    /* for mystrcpy */
char arr3[80],arr4[80],arr5[160]; /* for mystrcat */
char arr6[80];      /* for mystrlen */
char arr7[80];      /* for myatoi   */

/* **********  mystrcpy **********  */
printf("*** mystrcpy ***\n");
printf("Enter sentence for arr_val: ");
fgets(arr1,80,stdin);
mystrcpy(arr1,arr2);
printf("Original Variable arr1 : %s",arr1);
printf("Copied Variable arr2 : %s\n",arr2);
/* ******************************** */

/* **********  mystrcat **********  */
printf("*** mystrcat ***\n");
printf("Enter 1'st sentence: ");
fgets(arr3,80,stdin);
printf("Enter 2'nd sentence: ");
fgets(arr4,80,stdin);
mystrcat(arr3,arr4,arr5);
printf("1'st + 2'nd : %s\n\n",arr5);
/* ******************************** */

/* **********  mystrlen **********  */
printf("*** mystrlen ***\n");
printf("Enter sentence: ");
fgets(arr6,80,stdin);
printf("Length of sentence : %d\n\n",mystrlen(arr6));
/* ******************************** */

/* ***********  myatoi ***********  */
printf("*** myatoi ***\n");
printf("Enter string: ");
fgets(arr7,80,stdin);
printf("%d\n",myatoi(arr7));
/* ******************************** */
return 0;
}

int mystrcpy(char *aptr, char *bptr)
{
int i;
for(i=0;*(aptr+i)!='\0';i++) *(bptr+i)=*(aptr+i);
*(bptr+i)='\0';
return 0;
}

int mystrcat(char *aptr, char *bptr, char *cptr)
{
int arr1_size=0,arr2_size=0,total_size=0,i;

for(i=0;*(aptr+i)!='\0';i++) arr1_size=i;
for(i=0;*(bptr+i)!='\0';i++) arr2_size=i;

for(i=0;i<arr1_size;i++) *(cptr+i)=*(aptr+i);
for(i=0;i<arr2_size;i++) *(cptr+i+arr1_size)=*(bptr+i);

*(cptr+i+arr1_size)='\0';
return 0;
}

int mystrlen(char *aptr)
{
int i;
for(i=0;*(aptr+i)!='\0';i++) {}
return (i-1);
}

int myatoi(char *aptr)
{
int size,i=0,j=0,k=0,num=0;
char buf[80];

size=mystrlen(aptr);
for(i=0;i<size;i++) {
  switch (*(aptr+i)) {
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9': buf[j]=*(aptr+i); j++; break;
  default : i=size; continue;
  }
}
for(i=0;i<j;i++) {
  switch (buf[i]) {
  case '0': num+=(int)0*(int)pow(10,(j-i-1)); break;
  case '1': num+=(int)1*(int)pow(10,(j-i-1)); break;
  case '2': num+=(int)2*(int)pow(10,(j-i-1)); break;
  case '3': num+=(int)3*(int)pow(10,(j-i-1)); break;
  case '4': num+=(int)4*(int)pow(10,(j-i-1)); break;
  case '5': num+=(int)5*(int)pow(10,(j-i-1)); break;
  case '6': num+=(int)6*(int)pow(10,(j-i-1)); break;
  case '7': num+=(int)7*(int)pow(10,(j-i-1)); break;
  case '8': num+=(int)8*(int)pow(10,(j-i-1)); break;
  case '9': num+=(int)9*(int)pow(10,(j-i-1)); break;
  default : break;
  }
}
return num;
}

Posted by 몰라욧