Announcement

Yuk ikutan acara gathering Bandung Blog Vaganza, selengkapnya baca disini
  • Index
  •  » C/C++
  •  » C Toolbox: String Processing

#26 04-07-2010 00:08:28

sarwoko
2 dB
From: Surabaya
Registered: 04-09-2009
Posts: 38

Re: C Toolbox: String Processing

ardiyan wrote:

mustofa wrote:

Header file: string.h
Nama fungsi: strncpy
Prototipe: char *strncpy(char *dest, const char *src, int n)
Kegunaan:
- menyalin n karakter string src ke dest.
- fungsi ini akan mengembalikan alamat string dest.

Salam sejahtera Pak Mustofa.

Mau tanya Pak mengenai fungsi string strncpy. Misal ada string =

Code:

data = "P123456789"

string tersebut ingin saya pecah menjadi 4 string, antara lain =

Code:

header = "P"
data1 = "123"
data2 = "456"
data3 = "789"

Maksud percobaan saya adalah Jika karakter pertama = "P", maka variabel data1, data2 dan data3 boleh ditampilkan. Dan Jika karakter pertama bukan "P", maka variabel data1, data2 dan data3 tidak boleh tampil.
Program yang sudah saya sebagai berikut :

Code:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
unsigned char data[10], data1, data2, data3;
int main()
{
scanf("%s",data);
strncpy(data1,&data[1],3);
strncpy(data2,&data[4],3);
strncpy(data3,&data[7],3);
printf("Data1 = %s\nData2 = %s\nData3 = %s\n",data1,data2,data3);
}

Tapi hasil eksekusi program saya, menghasilkan variabel yang nilainya tidak sesuai dengan yang saya harapkan, hasil program saya sebagai berikut :
misal diberi input "P123456789", akan menghasilkan output :

Data1 = 123456789
Data2 = 456789
Data3 = 789


Jadi hanya variabel data3 yang sesuai dengan keinginan saya.

Yang ingin saya tanyakan.
1. Apakah ada yang salah dengan coding atau algoritma saya?
2. Untuk mengecek kondisi huruf/karakter pertama, pakai fungsi apa Pak? Tipe data nya apa? Agar bisa saya olah menggunakan logika if, sehingga saya bisa mengatur variabel data berapa yang ingin saya tampilkan.

Terima kasih.

Code:

#include <stdio.h>
#include <string.h>
int main (void)
{
    char data[20], data1[4], data2[4], data3[4];
    if (scanf("%s", data) != EOF) {
        printf("%s\n", data);
        strncpy(data1, &data[1], 3);
        data1[3] = 0;
        strncpy(data2, &data[4], 3);
        data2[3] = 0;
        strncpy(data3, &data[7], 3);
        data3[3] = 0;
        printf("Data1 = %s\nData2 = %s\nData3 = %s\n", data1, data2, data3);
    }
    return(0);
}

Offline

 

#27 04-07-2010 13:21:13

ardiyan
No Signal
Registered: 29-06-2010
Posts: 2

Re: C Toolbox: String Processing

sarwoko wrote:

Code:

#include <stdio.h>
#include <string.h>
int main (void)
{
    char data[20], data1[4], data2[4], data3[4];
    if (scanf("%s", data) != EOF) {
        printf("%s\n", data);
        strncpy(data1, &data[1], 3);
        data1[3] = 0;
        strncpy(data2, &data[4], 3);
        data2[3] = 0;
        strncpy(data3, &data[7], 3);
        data3[3] = 0;
        printf("Data1 = %s\nData2 = %s\nData3 = %s\n", data1, data2, data3);
    }
    return(0);
}

Terima kasih Pak, sudah saya coba dan berhasil.
btw, arti dari EOF pada

Code:

if (scanf("%s", data) != EOF)

apa ya Pak?

Thanks.

Last edited by ardiyan (04-07-2010 13:22:11)

Offline

 

#28 04-07-2010 21:26:52

sarwoko
2 dB
From: Surabaya
Registered: 04-09-2009
Posts: 38

Re: C Toolbox: String Processing

ardiyan wrote:

sarwoko wrote:

Code:

#include <stdio.h>
#include <string.h>
int main (void)
{
    char data[20], data1[4], data2[4], data3[4];
    if (scanf("%s", data) != EOF) {
        printf("%s\n", data);
        strncpy(data1, &data[1], 3);
        data1[3] = 0;
        strncpy(data2, &data[4], 3);
        data2[3] = 0;
        strncpy(data3, &data[7], 3);
        data3[3] = 0;
        printf("Data1 = %s\nData2 = %s\nData3 = %s\n", data1, data2, data3);
    }
    return(0);
}

Terima kasih Pak, sudah saya coba dan berhasil.
btw, arti dari EOF pada

Code:

if (scanf("%s", data) != EOF)

apa ya Pak?

Thanks.

EOF
atau silahkan cari di google

Offline

 
  • Index
  •  » C/C++
  •  » C Toolbox: String Processing

Board footer

Powered by PunBB
© Copyright 2002-2008 PunBB