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 ạ
Nhập vào các số cách nhau bởi dấu "-"
tự cắt chuỗi ra để đọc
(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>
@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:
vâng ạ
. Em mới học mỗi cái 1 chút nên có hơi nhầm lẫn
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 ạ
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
em nhìn thiếu x
xin lỗi các anh
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.
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
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ứ ^^