Nhập vào các số cách nhau bởi dấu "-"

chuyện là e có bài tập này, cho em hỏi nếu dữ liệu vào cách nhau bởi dấu “-” như v thì làm sao để đọc v ạ
image

tự cắt chuỗi ra để đọc

2 Likes

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

Trên 4rom mình không nên xin code anh ơi. Gỡ cái xin code đi không là bị mắng đấy.
Cắt kiểu gì thì em có 1 cách thủ công là duyệt từ đầu đến cuối chuỗi. Nếu gặp - thì dừng lại rồi chuyển chỗi trước đó sang kiểu int . Các giá trị này sẽ được đưa vào temp rồi dùng hàm atoi trong thư viện stdlib.h chuyển sang kiểu int rồi gán cho biến day

Giả sử : 28-12-2004
duyệt từ đầu đến khi gặp - thì dừng lại. Lúc này temp == "28" rồi dùng hàm atoi gán cho 1 biến nào đấy. Sau khi gán xong thì lại duyệt tiếp đến cuối.
Cách có vẻ hơi dài nhưng vẫn dùng được.
Nếu khong thì dùng hàm substr trong string ấy :

int day = atoi ( substr( string , 0 , 2 ) ) ;

hoặc

int day = atoi ( string.substr(0 ,2 ) ) ;//lấy ngày
int month = atoi ( substr( string , 3 , 2 ) ) ;//lấy tháng
int year = atoi ( substr( string , 6 , 4 ) ) ;//lấy năm

Nhưng em thấy cũng không nên lạm dụng thư viện quá

Về phần bài này thì em nghĩ nếu chắc chắn dấu giữa các số là dấu - thì nên làm theo kiểu này để lấy được ngày tháng năm

char *ptr = new char;
int day,month,year;
fscanf(stdin ,"%d-%d-%d" ,&day ,&month ,&year );

nhớ include <stdio.h>

3 Likes

@nguyen2812 Code C++ thì thuần tuý C++ thôi.


@Kien_Kien: Trên DNH có 1 vài bài về nhập dữ liệu ngày tháng, bạn thử tìm kiếm đã nhé.


Bonus: Tính ngày tiếp theo:

2 Likes

vâng ạ :ok_man: :ok_man: . Em mới học mỗi cái 1 chút nên có hơi nhầm lẫn :man_facepalming: :man_facepalming:


còn về topic mà anh trích dẫn thì chỉ output có dấu / còn nếu mình muốn input có dấu / như đúng đề bài (code theo C++) thì làm sao ạ :thinking: :thinking:
Theo topic được dẫn

Input : 28 12 2004
Output : 28/12/2004

Theo đề yêu cầu

Input : 28/12/2004
Output : 28/12/2004

Bạn chưa đọc kỹ hết câu trả lời rồi thì phải :yum:

4 Likes

em nhìn thiếu x :man_facepalming:
xin lỗi các anh :man_facepalming:

1 Like

ngành này quan trọng là tự học và kế thừa những kiến thức có sẵn, bạn nên xem lại thái độ học tập

3 Likes

Coder là những người biến những ý tưởng, lời giải trong đầu thành code, thế nên là đừng bao giờ nói “cho em xin code” nha em. Nói thế chứng tỏ em lười biếng, để người ta tự code rồi đưa đoạn code, nó giống như là nhờ người ta giải hộ bài tập vậy. Mà nếu như là một bài toán khó, phức tạp, cần kiến thức cao siêu thì còn có thể chấp nhận chứ đây là một bài toán đơn giản, chỉ cần dùng tí kiến thức cơ bản là giải được mà lại “xin code” thì thật khó có thể chấp nhận được. Trước khi giải một bài toán liên quan đến lập trình, hãy nắm kĩ các kiến thức cơ bản về lập trình, ngôn ngữ lập trình mà em đang học (ở đây là C++), sau khi đã nắm chắc xong thì mới bắt đầu giải bài tập. Khi giải bài tập, hãy mường tượng câu hỏi đó trong đầu, ghi ra giấy nháp, suy nghĩ kĩ, kĩ rồi mà chưa ra thì lên Google tìm về vấn đề đang gặp phải, tìm không ra mới lên đây hỏi.

4 Likes

bài post này cũng không có lỗi gì với ai, chỉ có lỗi với chính bản thân bạn thôi, nên cũng không cần phải xin lỗi ai trên này đâu
nếu có thì người bạn cần xin lỗi chính là bản thân bạn mà thôi

3 Likes

Bài toán khó, phức tạp, cần kiến thức cao siêu thì càng ko thể chấp nhận dc chứ ^^

4 Likes

@VannyTraanf À chắc code ví dụ vài chỗ thì được :thinking:?

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?