Langsung ke konten utama

Fungsi untuk Menukar String Bahasa C

Artikel ini akan menjelaskan tentang fungsi swab yang digunakan untuk menukar nilai string pada program bahasa C. Perhatikan contoh program berikut ini:

#include<stdio.h>

 

void swap(char *str1, char *str2)

{

char *temp = str1;

str1 = str2;

str2 = temp;

}

 

int main()

{

char *str1 = "makan";

char *str2 = "danmakan";

swap(str1, str2);

printf("str1 adalah %s,"

"str2 is %s", str1, str2);

getchar();

return 0;

}


Output dari program adalah str2 adalah "makan", dan str2 adalah "danmakan". Sehingga kedua fungsi yang diperlihatkan sebelumnya tidak melakukan penukaran nilai string apapun. Kedua fungsi tersebut hanya melakukan penukaran variabel pointer lokal dan perubahan tersebut tidak direpleksikan pada bagian luar fungsi.

Penukaran pointer
Jika menggunakan karakter pointer untuk string yang bukan array maka ubah str1 dan str2 untuk saling melakukan penunjukkan data. Yaitu, dengan melakukan penukaran pointer. Pada fungsi, akan dilakukan penukaran pointer dan akan dilakukan perubahan yang direpfleksikan diluar fungsi, sehingga perlu dilakukan penerusan pointer ke pointer.

#include<stdio.h>

 

/* Menukar string dengan cara

menukar pointer */

void swap1(char **str1_ptr, char **str2_ptr)

{

char *temp = *str1_ptr;

*str1_ptr = *str2_ptr;

*str2_ptr = temp;

}

 

int main()

{

char *str1 = "makan";

char *str2 = "danmakan";

swap1(&str1, &str2);

printf("str1 adalah %s"

", str2 adalah "

"%s", str1, str2);

getchar();

return 0;

}


Fungsi yang diperlihatkan sebelumnya tidak dapat diterapkan jika string tidak disimpan menggunakan karakter array.

Penukaran Data
Jika menggunakan karakter array untuk menyimpan string maka yang yang mudah untuk melakukan penukaran data dari kedua array adalah sebagai berikut:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

 

/* Menukar String dengan Cara Menukar Data */

void swap2(char *str1, char *str2)

{

char *temp = (char *)malloc((strlen(str1) + 1) * sizeof(char));

strcpy(temp, str1);

strcpy(str1, str2);

strcpy(str2, temp);

free(temp);

}

 

int main()

{

char str1[10] = "makan";

char str2[10] = "danmakan";

swap2(str1, str2);

printf("str1 adalah %s, str2 adalah %s", str1, str2);

getchar();

return 0;

}


Fungsi ini tidak akan bisa diterapkan jika string disimpan dalam memori block read only.

Komentar

  1. Udah daripada belajar cara menukan string mending rakit PC aja.

    BalasHapus
  2. Kenapa perlu menggunakan fungsi penukar string pada bahasa C?

    BalasHapus
    Balasan
    1. Karena ada suatu kondisi dimana sebuah program perlu melakukan penukaran nilai string.

      Hapus
  3. Apa contoh program yang perlu untuk melakukan sebuah string?

    BalasHapus
    Balasan
    1. Contoh, program untuk mengurutkan nilai atau sorting, dimana pada salah satu langkah algoritmanya perlu menggunakan proses penukaran data, atau penukaran string.

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D