You are not logged in.
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.
#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
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
if (scanf("%s", data) != EOF)apa ya Pak?
Thanks.
Last edited by ardiyan (04-07-2010 13:22:11)
Offline
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 padaCode:
if (scanf("%s", data) != EOF)apa ya Pak?
Thanks.
EOF
atau silahkan cari di google
Offline