Vấn đề
Chuyển đổi giữa chuỗi (string) và số (number) trong C.
Giải pháp
Hai hàm chính:
sscanf()– Chuỗi → Số.sprintf()– Số → Chuỗi.
Chuỗi sang số (sscanf)
sscanf(chuoi, "dinhdang", &bien...);
Ví dụ
#include <stdio.h>
int main() {
char a[20] = "02 01 2010";
int day, mon, yr;
sscanf(a, "%d %d %d", &day, &mon, &yr);
printf("Ngay = %d\n", day);
printf("Thang = %d\n", mon);
printf("Nam = %d\n", yr);
return 0;
}
Kết quả
Ngay = 2 Thang = 1 Nam = 2010
Số sang chuỗi (sprintf)
sprintf(chuoi, "dinhdang", bien...);
Ví dụ
#include <stdio.h>
int main() {
char a[50];
int day = 2, mon = 1, yr = 2010;
sprintf(a, "%d/%d/%d", day, mon, yr);
printf("Hom nay la ngay: %s", a);
return 0;
}
Kết quả
Hom nay la ngay: 02/01/2010