Tuesday, 24 January 2012

Insert Substring into String

c program to insert substring into a string

c program to insert substring into a string: This code inserts the target string into the source string. For example if the source string is "c programming" and target string is " is amazing" (please note there is space at beginning) and if we add target string to source string at position 14 then we obtain the string "c programming is amazing". In our c code we will make a function which perform the desired task and we pass three arguments to it the source string, target string and position. You can insert the string at any valid position.



#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

void insert_substring(char*, char*, int);
char* substring(char*, int, int);

void main()
{
    char text[100], substring[100];
    int position;
    clrscr();
    printf("Enter some text\n");
    gets(text);
    printf("Enter the string to insert\n");
    gets(substring);
    printf("Enter the position to insert\n");
    scanf("%d", &position);
    insert_substring(text, substring, position);
    printf("%s\n",text);
    getch();
}

void insert_substring(char *a, char *b, int position)
{
    char *f, *e;
    int length;
    length = strlen(a);
    f = substring(a, 1, position - 1 );
    e = substring(a, position, length-position+1);
    strcpy(a, "");
    strcat(a, f);
    free(f);
    strcat(a, b);
    strcat(a, e);
    free(e);
}

char *substring(char *string, int position, int length)
{
    char *pointer;
    int c;
    pointer = malloc(length+1);
    if( pointer == NULL )
    exit(EXIT_FAILURE);
    for( c = 0 ; c < length ; c++ )
    *(pointer+c) = *((string+position-1)+c);
    *(pointer+c) = '\0';
    return pointer;
}

No comments:

Post a Comment