Wednesday, December 9, 2015

Input 1 Line String dengan Spasi

Berikut code untuk menginput 1 baris kalimat yang dipisah dengan spasi ke dalam suatu variabel.

#include<stdio.h>
int main ()
{   
    char string1[100];
   
    // Input
    scanf("%[^\n]s", string1);
   
    // Output
    printf("%s", string1);
}

Contoh input:
symbol 123456 abcde !@#$%^

Contoh output:
symbol 123456 abcde !@#$%^

Strcpy

Strcpy adalah salah satu perintah dalam library string.h untuk menyalin suatu string ke variabel lain dan menambah karakter '\0' ke akhir kalimat.

strcpy(string1, string2);
string1: variabel tujuan penyalinan
string2: string yang akan disalin

Berikut implementasinya dalam bahasa pemrograman C.

#include<stdio.h>
#include<string.h>
int main()
{
    char string1[50], string2[50];
   
    // Input
    scanf("%[^\n]s", string2); getchar();
   
    // Output
    strcpy(string1, string2);
   
    printf("%s", string1);
}

Contoh input:
teknik informatika

Contoh output:
teknik informatika

Strncpy

Strncpy adalah salah satu perintah dalam library string.h untuk menyalin suatu string ke variabel lain. Bedanya dengan Strcpy adalah Strncpy menyalin string berdasarkan panjang tertentu dan tidak menambahkan karakter '\0' ke akhir kalimat.

strncpy(string1, string2, panjang);
string1: variabel tujuan penyalinan
string2: string yang akan disalin
panjang: panjang string2 yang akan disalin. Dihitung dari awal

Hati-hati!
Perintah strncpy tidak menambahkan karakter '\0' ke akhir kalimat. Akibatnya, string dalam variabel string1 akan terus berlanjut hingga karakter yang tidak dapat ditentukan sesuai nilai yang ada dalam urutan memori RAM.

Solusinya adalah menambah baris berikut setelah fungsi strncpy dipanggil.
string1[strlen(string2)] = "\0";

Berikut implementasinya dalam bahasa pemrograman C.

#include<stdio.h>
#include<string.h>
int main()
{
    char string1[50], string2[50];
    int panjang;
   
    // Input
    scanf("%[^\n]s", string2); getchar();
    scanf("%d", &panjang);
   
    // Output
    strncpy(string1, string2, panjang);
   
    printf("%s", string1);
}

Contoh input:
teknik informatika
10

Contoh output:
teknik inf??????

Strcat

Strcat adalah salah satu perintah dalam library string.h untuk menyambung string2 ke belakang string1 dan menambah karakter '\0' di akhir kalimat.

strcat(string1, string2);
string1: string utama yang akan disambung dengan string2
Return value: string1 yang sudah tersambung dengan string2.

Berikut implementasinya dalam bahasa pemrograman C.

#include<stdio.h>
#include<string.h>
int main(){
    char string1[50], string2[50];

    // Input
    scanf("%[^\n]s", string1); getchar();
    scanf("%[^\n]s", string2); getchar();
  
    // Output
    strcat(string1, string2);
    printf("%s", string1);
   
    /* Perintah di bawah ini menghasilkan output yang sama */
    /* printf("%s", strcat(string1, string2)); */
}

Contoh input:
teknik
 informatika

Contoh output:
teknik informatika

Strncat

Strncat adalah salah satu perintah dalam library string.h untuk menyambung string2 ke belakang string1 dan menambah karakter '\0' di akhir kalimat jika perlu. Bedanya dengan Strcat adalah Strncat menyambung string2 sebanyak panjang karakter tertentu dari awal.

strncat(string1, string2, panjang);
string1: string utama yang akan disambung dengan string2
panjang: panjang string2 yang akan disambung. Penghitungannya dari awal
Return value: string1 yang sudah tersambung dengan string2.

Berikut implementasinya dalam bahasa pemrograman C.

#include<stdio.h>
#include<string.h>
int main(){
    char string1[50], string2[50];
    int panjang;

    // Input
    scanf("%[^\n]s", string1); getchar();
    scanf("%[^\n]s", string2); getchar();
   
    scanf("%d", &panjang);

    // Output
    strncat(string1, string2, panjang);
    printf("%s", string1);
   
    /* Perintah di bawah ini menghasilkan output yang sama */
    /* printf("%s", strncat(string1, string2, panjang)); */
}

Contoh input:
teknik
 informatika
4

Contoh output:
teknik inf

Tuesday, December 1, 2015

Strcmp

Strncmp adalah salah satu perintah dalam library string.h untuk membandingkan 2 buah string.

strcmp(string1, string2);
string1 dan string2: string yang akan dibandingkan.

Return value: negatif (< 0), 0, atau positif (> 0)
< 0 : string1 lebih pendek atau nilai karakter pertama yang berbeda lebih kecil dalam urutan kode ASCII
0    : string1 = string2
> 0 : string1 lebih panjang atau nilai karakter pertama yang berbeda lebih besar dalam urutan kode ASCII

Hati-hati!
Jika return valuenya tidak 0, maka return valuenya tidak tepat -1 atau 1 walaupun hasil perintah printf menampilkan nilai -1 atau 1.
Jadi, gunakan kode ini

if(strcmp(string1, string2) > 0)
atau
if(strcmp(string1, string2) < 0)

daripada

if(strcmp(string1, string2) == 1)
atau
if(strcmp(string1, string2) == -1)

Berikut implemetasinya dalam bahasa pemrograman C.

#include<stdio.h>
#include<string.h>
int main()
{   
    char string1[50], string2[50];
   
    scanf("%[^\n]s", string1); getchar();
    scanf("%[^\n]s", string2);
    
    printf("%d", strcmp(string1, string2));
}

Contoh input 1:
teknik informatika
teknik informatika

Contoh output 1:
0

Contoh input 2:
teknik informatika
teknik industri

Contoh output 2:
1

Strncmp

Strncmp adalah salah satu perintah dalam library string.h untuk membandingkan 2 buah string. Bedanya dengan Strcmp adalah Strncmp membandingkan string berdasarkan panjang string tertentu yang dihitung dari awal.

strncmp(string1, string2, len);
string1 dan string2: string yang akan dibandingkan.
len: panjang string yang akan dibandingkan (dihitung dari awal).

Return value: negatif (< 0), 0, atau positif (> 0)
< 0 : string1 lebih pendek atau nilai karakter pertama yang berbeda lebih kecil dalam urutan kode ASCII
0    : string1 = string2
> 0 : string1 lebih panjang atau nilai karakter pertama yang berbeda lebih besar dalam urutan kode ASCII

Hati-hati!
Jika return valuenya tidak 0, maka return valuenya tidak tepat -1 atau 1 walaupun hasil perintah printf menampilkan nilai -1 atau 1.
Jadi, gunakan kode ini

if(strncmp(string1, string2, panjang) > 0)
atau
if(strncmp(string1, string2, panjang) < 0)

daripada

if(strncmp(string1, string2, panjang) == 1)
atau
if(strncmp(string1, string2, panjang) == -1)

Berikut implemetasinya dalam bahasa pemrograman C.

#include<stdio.h>
#include<string.h>
int main()
{   
    char string1[50], string2[50];
    int panjang;
   
    scanf("%[^\n]s", string1); getchar();
    scanf("%[^\n]s", string2); getchar();
   
    scanf("%d", &panjang);
   
    printf("%d", strncmp(string1, string2, panjang));
}

Contoh input 1:
teknik informatika
teknik industri
9

Contoh output 1:
0

Contoh input 2:
teknik informatika
teknik industri
10

Contoh output 2:
1