😈
ReverseMe
  • Introduction
  • References
  • ReverseMe
    • Introduction
      • What is Reverse Engineering?
      • Legality of Reverse Engineering
      • Reverse Engineering Communities
  • Programming Language
    • C
      • Basic
        • Pointer
        • Casting
      • Reference
        • stdio.h
          • fclose()
          • fopen()
          • fseek()
          • ftell()
          • fgetc()
          • fgets()
          • fread()
          • fprintf()
          • fwrite()
          • printf()
          • putchar()
          • puts()
          • sprintf()
          • snprintf()
        • stdlib.h
          • malloc()
          • calloc()
          • realloc()
          • free()
          • rand()
          • srand()
        • string.h
          • strcat()
          • strncat()
          • strcmp()
          • strncmp()
          • strcpy()
          • strncpy()
        • time.h
          • time()
  • Reversing Fundamentals
    • Stripped and Unstripped
  • Tools
    • file
    • strings
    • ltrace
    • ghidra
  • CTF Writeups
    • HackTheBox Challenges
      • Baby RE
      • You Cant C Me
  • ABOUT ME
    • Mail
    • LinkedIn
    • GitHub
Powered by GitBook
On this page
  • Sintaks
  • Penjelasan
  • Contoh Pengunaan
  1. Programming Language
  2. C
  3. Reference
  4. stdio.h

sprintf()

Menulis string terformat ke array karakter dalam C

Fungsi sprintf() digunakan untuk menulis data terformat ke dalam sebuah array karakter (string). Fungsi ini mirip dengan printf(), namun hasilnya disimpan ke dalam buffer (array karakter) alih-alih ditampilkan ke layar.

Sintaks

int sprintf(char *str, const char *format, ...);
  • str âžœ Array karakter (buffer) tempat string hasil format disimpan.

  • format âžœ String format yang menentukan bagaimana data akan diubah menjadi teks.

  • ... âžœ Argumen tambahan yang akan disisipkan ke dalam string format.

  • Mengembalikan: Jumlah karakter yang ditulis ke str (tidak termasuk karakter null '\0'), atau nilai negatif jika terjadi error.

Penjelasan

  • Membuat String Terformat: sprintf() mengambil format string dan argumen, lalu menyusunnya ke dalam buffer yang ditunjuk oleh str.

  • Buffer: Pastikan buffer str memiliki ukuran yang cukup untuk menampung hasil string terformat, karena sprintf() tidak melakukan pemeriksaan batas secara otomatis.

  • Output Tidak Langsung: Berbeda dengan printf(), sprintf() tidak menampilkan output ke layar; hasil format disimpan ke dalam variabel string yang bisa digunakan lebih lanjut dalam program.

Contoh Pengunaan

#include <stdio.h>

int main() {
    char buffer[100];
    int angka = 42;
    float desimal = 3.14159;

    // Menulis string terformat ke buffer
    int jumlahKarakter = sprintf(buffer, "Nilai integer: %d, Nilai float: %.2f", angka, desimal);

    // Menampilkan hasil string terformat
    printf("Buffer: %s\n", buffer);
    printf("Jumlah karakter yang ditulis: %d\n", jumlahKarakter);

    return 0;
}

Hasilnya:

Buffer: Nilai integer: 42, Nilai float: 3.14
Jumlah karakter yang ditulis: 36
Previousputs()Nextsnprintf()

Last updated 1 month ago