Friday, 1 February 2013

STRCAT implementation in C

Method 1:
//Program to implement strcat
#include <stdio.h>
void my_strcat( char *dest, const char *src){ (*dest)? my_strcat(++dest, src):(*dest++ = *src++)?my_strcat(dest, src):0; } int main(){     char dest[30] = "Umesh ";     char *src = "Joga";     my_strcat(dest, src);     printf("Dest = %s\n", dest);     getchar();     return 0; }
#if 0 Explanation: 1. my_strcat(dest, src) copies data of src to dest. 2. To do so, it first reaches end of the string dest using recursive calls my_strcat(++dest, src). 3. Once end of dest is reached, data is copied using (*dest++ = *src++)?  my_strcat(dest, src). #endif
Method 2
#include <stdio.h>
char *my_strcat(char *dest, const char *src){     int i, j;     for(i = 0; dest[i] != '\0'; i++);     //printf("Val of i = %d\n", i);     for(j = 0; src[j] != '\0'; j++)         dest[i+j] = src[j];     //printf("Val of j = %d\n", j);     dest[i+j] = '\0';     return dest; } Method 3 //Using pointer char *mystrcat(char *dest, const char *src){ while(*dest) dest++; while(*dest++ = *src++); return dest; } int main(){     char *src = "Joga";     char dest[20] = "Umesh ";     printf("Dest = %s\n", my_strcat(dest, src));     getchar();     return 0; }

No comments:

Post a Comment