ví dụ: cho chuỗi "15abcde17dh10.5" thì tổng trong chuỗi đó phải là
tổng bằng 15+17+10.5=42.5 ai biết thì giải dùm mình. thanks nhìu!
Nguyễn Thị Mai Phượng
Thứ nhất theo bạn Maiphuong2008 đã nói,phải chỉ ra xem cần lấy số có bao nhiêu chữ số
Thứ 2 dựa vào bảng mã ASCII hoàn toàn có thể làm được điều bạn đặt ra. Khi lấy được các chữ số thì dùng hàm atoi để chuyển kí tự sang số rồi thực hiện phép cộng.
Chúc bạn thành công!
Chia thành nhiều bài tập con.
1. Tách các chuỗi con là số trong một chuỗi cho trước.
Ví dụ : "a7dklfjg341lskl34" : ở đây ta có 3 chuỗi con có thể chuyển sang số : 7 , 341 , 34
Hoặc có thể quy định là tìm ra các kí tự là số trong chuỗi cho trước.
2. Convert các chuỗi con là số sang dạng số.
Ví dụ : "g45" : chuỗi số "45" convert sang dạng số : 45
^^
None!
- Bác viết 1 hàm kiểm tra 1 ký tự có phải là kiểu số hay không
- Sau đó duyệt chuỗi đầu vào, gặp vị trí là số đầu->đánh dấu lại, tìm tiếp tới vị trí ko phải là số từ vị trí vừa đánh dấu -> cắt chuỗi ra -> convert thành số
- Ý tưởng là vậy, chắc viết không khó
[COLOR="RoyalBlue"]Mẹ đời cho ta ngã để dạy ta nên người[/COLOR]
My blog: [URL="http://mucdongblog.wordpress.com"]http://mucdongblog.wordpress.com[/URL]
C++ Code:
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> void main() // diendanspkt.net { char chuoi[40],chuoichuaso[40],*chuoirong="0"; int j=0,i=0; float temp,tong=0; puts("nhap chuoi"); gets_s(chuoi); while(i<=(int)strlen(chuoi)) { if ((chuoi[i]>='0' && chuoi[i]<='9') || (chuoi[i]=='.')) { chuoichuaso[j]=chuoi[i]; j++; i++; } else { temp=(float)atof(chuoichuaso); tong=tong+temp; i++; strcpy_s(chuoichuaso,chuoirong); j=0; } } printf("tong %f",tong); _getch(); }
Đã được chỉnh sửa lần cuối bởi rox_rook : 30-10-2009 lúc 01:17 PM.