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 stringSetelah 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.
Tantangan
MudahTulis program C yang menunjukkan penggabungan string menggunakan fungsi strcat() untuk membuat pesan yang dipersonalisasi. Programmu harus:
- Membaca bilangan bulat
nyang mewakili jumlah orang yang akan diproses - Untuk setiap orang:
- Membaca nama depan mereka dari input
- Membaca nama belakang mereka dari input
- Membuat array karakter bernama
fullNamedengan 100 elemen - Menggunakan
strcpy()untuk menyalin nama depan ke dalamfullName - Menggunakan
strcat()untuk menambahkan satu spasi " " kefullName - Menggunakan
strcat()untuk menambahkan nama belakang kefullName - Membuat array karakter bernama
greetingdengan 150 elemen - Menggunakan
strcpy()untuk menyalin "Hello, " ke dalamgreeting - Menggunakan
strcat()untuk menambahkanfullNamekegreeting - Menggunakan
strcat()untuk menambahkan "! Welcome to our program." kegreeting - Mencetak pesan sapaan akhir
- Setelah memproses semua orang, buat pesan ringkasan:
- Membuat array karakter bernama
summarydengan 100 elemen - Menggunakan
strcpy()untuk menyalin "Total people processed: " ke dalamsummary - Mengonversi bilangan
nmenjadi string dan menggunakanstrcat()untuk menambahkannya kesummary - Mencetak pesan ringkasan
- Membuat array karakter bernama
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
SmithOutput-mu harus berupa:
Hello, John Doe! Welcome to our program.
Hello, Alice Smith! Welcome to our program.
Total people processed: 2Tantangan 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;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Dasar-Dasar Pointer
Apa Itu Pointer?Mendeklarasikan PointerOperator Address-Of (&)Operator Dereference (*)Pointer NULLRekap: Dasar-Dasar Pointer4Proyek: Utilitas Teks Sederhana
Gambaran Umum ProyekMenghitung Karakter2Pointer dan array
Nama array sebagai pointerElemen array dan pointerAritmetika pointerMembandingkan pointerRangkuman: Menelusuri array dengan pointer5Pointer dan Fungsi
Penerusan dengan NilaiMeneruskan Pointer ke FungsiMengubah Variabel melalui PointerContoh Klasik: SwapMeneruskan Array ke FungsiRingkasan: Argumen Pointer Fungsi8Struct dan Pointer
Pointer ke StructOperator Panah (->)Mengirim Struct berdasarkan NilaiMengirim Pointer StructAlokasi Dinamis StructUlasan: Memodifikasi Struct dengan Pointer11Tantangan Rangkuman Akhir
Rangkuman: Penggabungan string DinamisRangkuman: array berisi structRangkuman: Penghitung Frekuensi Kata3Array char dan String
String sebagai array charPenanda akhir nullInput String dengan scanfMenggunakan strlen()Menggunakan strcpy()Menggunakan strcat()Menggunakan strcmp()Ulasan: Fungsi String DasarLatihan sendiri: Compiler C online