Menu
CoddyTech

Menggunakan strcat()

Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 17 dari 63.

Kamu telah mempelajari cara menyalin string dengan strcpy(), tetapi bagaimana jika kamu ingin menggabungkan dua string? Ini disebut concatenation, dan C menyediakan fungsi strcat() dari library <string.h> untuk tujuan ini.

Fungsi strcat() menambahkan isi satu string ke akhir string lain. Fungsi ini menerima dua argumen: string tujuan (yang akan diubah) dan string sumber (yang akan ditambahkan ke bagian akhir).

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

char greeting[20] = "Hello";
char name[] = " World";
strcat(greeting, name);  // greeting sekarang berisi "Hello World"

Sangat penting untuk memastikan string tujuan memiliki ruang yang cukup untuk menampung konten asli dan konten baru yang ditambahkan. Fungsi strcat() mencari terminator null dalam string tujuan, menghapusnya, menyalin string sumber ke lokasi tersebut, lalu menambahkan terminator null baru di bagian paling akhir.

Terkadang kamu perlu menggabungkan angka (seperti int) ke string. Karena strcat() hanya berfungsi dengan array karakter, kamu perlu mengonversi angka tersebut menjadi string terlebih dahulu. Kamu bisa melakukannya dengan sprintf(), yang bekerja seperti printf(), tetapi menulis hasil yang sudah diformat ke dalam array karakter alih-alih mencetaknya ke layar. sprintf() merupakan bagian dari <stdio.h>, yang sudah disertakan di sebagian besar program C.

int n = 42;
char numStr[20];
sprintf(numStr, "%d", n);  // numStr sekarang berisi "42" sebagai string

Setelah angka disimpan sebagai string di numStr, kamu dapat menggunakan strcat() untuk menambahkannya ke string lain seperti biasa:

char summary[100] = "Total people processed: ";
int n = 3;
char numStr[20];
sprintf(numStr, "%d", n);
strcat(summary, numStr);  // summary sekarang berisi "Total people processed: 3"

Fungsi ini penting untuk menyusun string yang lebih panjang dari bagian-bagian kecil, seperti membuat kalimat lengkap dari kata-kata satu per satu atau menggabungkan input pengguna dengan teks yang sudah ditentukan.

challenge icon

Tantangan

Mudah

Tulis program C yang menunjukkan penggabungan string menggunakan fungsi strcat() untuk membuat pesan yang dipersonalisasi. Programmu harus:

  1. Membaca bilangan bulat n yang mewakili jumlah orang yang akan diproses
  2. Untuk setiap orang:
    • Membaca nama depan mereka dari input
    • Membaca nama belakang mereka dari input
    • Membuat array karakter bernama fullName dengan 100 elemen
    • Menggunakan strcpy() untuk menyalin nama depan ke dalam fullName
    • Menggunakan strcat() untuk menambahkan satu spasi " " ke fullName
    • Menggunakan strcat() untuk menambahkan nama belakang ke fullName
    • Membuat array karakter bernama greeting dengan 150 elemen
    • Menggunakan strcpy() untuk menyalin "Hello, " ke dalam greeting
    • Menggunakan strcat() untuk menambahkan fullName ke greeting
    • Menggunakan strcat() untuk menambahkan "! Welcome to our program." ke greeting
    • Mencetak pesan sapaan akhir
  3. Setelah memproses semua orang, buat pesan ringkasan:
    • Membuat array karakter bernama summary dengan 100 elemen
    • Menggunakan strcpy() untuk menyalin "Total people processed: " ke dalam summary
    • Mengonversi bilangan n menjadi string dan menggunakan strcat() untuk menambahkannya ke summary
    • Mencetak pesan ringkasan

Ingat untuk menyertakan header <string.h> agar dapat menggunakan fungsi-fungsi string.

Output-mu harus menampilkan hasil dalam format berikut:

Hello, [FirstName LastName]! Welcome to our program.
Hello, [FirstName LastName]! Welcome to our program.
...
Total people processed: [n]

Contohnya, jika input-nya adalah:

2
John
Doe
Alice
Smith

Output-mu harus berupa:

Hello, John Doe! Welcome to our program.
Hello, Alice Smith! Welcome to our program.
Total people processed: 2

Tantangan ini menguji pemahamanmu tentang penggunaan strcat() untuk menggabungkan beberapa string, memadukannya dengan strcpy() untuk menyiapkan string awal, serta menyusun string kompleks dari beberapa bagian secara bertahap.

Coba sendiri

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

int main() {
    // Baca jumlah orang
    int n;
    scanf("%d", &n);
    
    // TODO: Tulis kodemu di bawah ini
    // Proses setiap orang dan buat pesan sapaan
    // Lalu buat dan tampilkan pesan ringkasan
    
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C online