String & Rekursif : Program untuk Menyisipkan String di suatu String lain

7 12 2009

1.   Buat program yang memilki prosedur yang dapat menyisipkan string di suatu string lain.

Contoh :

String : “saat mengerjakan praktikum harus tenang”

Penyisipan : (“ASIK”,9)

Output : “saat mengASIKerjaan praktikum harus tenang”

Nb : index string zero-based index

Algoritma Program :

  1. Program menampilkan instruksi kepada user untuk memasukkan input kalimat yang ingin disisipi.
  2. Program menampilkan instruksi kepada user untuk memasukkan input kata yang ingin disisipikan.
  3. Program menampilkan instruksi kepada user untuk memasukkan input posisi kata yang ingin disisipkan.
  4. Program memanggil fungsi sisip.
  5. Jika index kurang dari sama dengan panjang kalimat dan jika index lebih dari 0, fungsi sisip akan menampilkan karakter dalam kalimat sesuai index dan melakukan rekursi untuk menampilkan karakter selanjutnya.
  6. Jika index kurang dari sama dengan panjang kalimat dan jika index kurang dari 0, fungsi sisip akan memanggil fungsi akhir.
  7. Fungsi akhir akan menampilkan kata yang akan disisipkan kemudian menampilkan kalimat yang akan disisipi.
  8. Jika index lebih dari panjang kalimat, fungsi sisip akan langsung menambahkan kata yang akan disisipkan dibelakang kalimat yang akan disisipi kemudian menampilkannya.

Source Code Program :

#include<stdio.h>

#include<string.h>

#include<conio.h>

void sisip(char klm[100], char kt[100], int ind,int pj, int i);

void akhir(char kt[100],int ind, int pj);

char kalimat[100];

main()

{

int index, panj, i=0;

char kata[100];

printf("Masukkan kalimat ==> ");

gets(kalimat);

panj=strlen(kalimat);

printf("Masukkan kata yang akan disisipkan ==> ");

gets(kata);

printf("Masukkan posisi kata penyisip ==> ");

scanf("%d",&index);

sisip(kalimat, kata, index, panj, i);

getch();

}

void sisip(char klm[100], char kt[100], int ind, int pj, int i)

{

if(ind<=pj)

{

if(i<ind)

{

printf("%c", klm[i]);

sisip(klm, kt, ind, pj, i+1);

}

else

akhir(kt, ind, pj);

}

else

{

strcat(klm,kt);

printf(klm);

}

}

void akhir(char kt[100], int ind, int pj)

{

printf(kt);

for(int j=ind; j<pj; j++)

{

printf("%c",kalimat[j]);

}

}

Posted By : Evan Yofiyanto @ Evan’s Blog : Kuliah Informatika (kuliahinformatika.wordpress.com)

[FREAX]


Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: