halo gan saya mau nanya gimana caranya mengisi full name untuk scan di input c ya

#include <stdio.h>
int main()
{
char name[25];
int dob;
int age;
scanf("%s %d",&name,&dob);
age = 2020 - dob;
printf("Hello %s, this year you are %d years old",name,age);

return 0;
}


ini codingan c saya, sy bingung gimana untuk bisa menginput nama lengkap (ex = budi martin djoko) tanpa menganggu input integer.  

Soal :

3. Reads fullname and year of birth, then show the fullname and age
Input: anonymous 2000
Output: Hello anonymous, this year you are 19 years old


jadi itu yg diatas adalah soalnya dia meminta input untuk memasukan nama lengkap tpi saya bingung gimana untuk memasukan input tersebut , tolong bantuannya ya 



avatar Nanakon

Ditanyakan oleh @Nanakon

1 Kontribusi 0 Poin

  • Btw kenapa tag nya java & javascript? ._. - @kodergan
  • ganti judul kamu ya, ngga perlu tulis "halo gan saya mau nanya..." - @hilmanski

Login untuk menanggapi


Jawaban

Coba bikin 2X inputan. Input nama sendiri, input tahun lahir sendiri.

Your name : [ketik nama, enter]
Your birthday : [ketik tgl lahir, enter]
Hello xxx, this year you are yy years old

Lebih jelas yang diinputkan apa, karena ada keterangannya, alur programnya juga lebih gampang.
Kalo pake 1 inputan gimana tau panjang nama lengkapnya? Bisa aja kan nama lengkapnya 2 kata, 3 kata, dst...
avatar ChronoJava

Dijawab oleh @ChronoJava

40 Kontribusi 21 Poin

  • tdi nya juga berpikir gitu bro , tpi ini harus sesuai dengan input dan output yang dimau soal - @Nanakon

Login untuk menanggapi


Ada satu cara, tapi hanya akan bekerja dengan asumsi bahwa nama tidak akan mengandung angka

1.  Ambil sebaris input

2. Cari index dari angka yang pertama kali muncul
Misal, “abc 591”
index = 4

3. Lalu gunakan fungsi atoi untuk mengekstrak angkanya
int tahun = atoi(str + index);
// dimana str adalah baris inputan (sudah termasuk tahunnya)
// dan index adalah index angka yang sebelumnya sudah dicari

Kurang lebih seperti itu bisa sih, hanya saja memang ribet. Mungkin bisa menggunakan cara lain seperti regex + scanf(?), tapi entahlah, belum saya coba juga :D
avatar kodergan

Dijawab oleh @kodergan

27 Kontribusi 27 Poin

Login untuk menanggapi


Login untuk gabung berdiskusi