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; }
Friday, 1 February 2013
STRCAT implementation in C
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment