GetBirthDate 的功能是將一個身份證號碼中的出生日期轉為整數
#include<stdio.h>
void GetBirthDate(char* s) {
int i, j=0;
for (i = 6; i < 14; i++) {
j *= 10;
j += s[i] - '0';
}
}
int main(void) {
char id[] = "51010219990506001x";
int date = 0, year, month, day;
date = GetBirthDate(id);
year = date / 10000;
month = date / 100 % 100;
day = date & 100;
printf("%04d-%02d-%02d\n", year, month, day);
return 0;
}
uj5u.com熱心網友回復:
先不說你算的對不對,你的GetBirthDate回傳void就是無回傳值,
看你的意思應該是想回傳int
uj5u.com熱心網友回復:
所以怎么讓字符陣列回傳整形呢
uj5u.com熱心網友回復:
先不說演算法,要回傳整型void GetBirthDate(char* s) ==>> int GetBirthDate(char* s)
uj5u.com熱心網友回復:
GetBirthDate 的功能是將一個身份證號碼中的出生日期轉為整數
#include<stdio.h>
void GetBirthDate(char* s) {
int i, j=0;
for (i = 6; i < 14; i++) {
j *= 10;
j += s[i] - '0';
}
}
int main(void) {
char id[] = "51010219990506001x";
int date = 0, year, month, day;
date = GetBirthDate(id);
year = date / 10000;
month = date / 100 % 100;
day = date & 100;
printf("%04d-%02d-%02d\n", year, month, day);
return 0;
}
atol,字串轉換為數字
uj5u.com熱心網友回復:
void GetBirthDate(char* s) {int i, j=0;
for (i = 6; i < 14; i++) {
j *= 10;
j += s[i] - '0';
}
}=>
int GetBirthDate(char* s) {
int i, j=0;
for (i = 6; i < 14; i++) {
j *= 10;
j += s[i] - '0';
}
return j;
}
還有字符轉整型是atoi,不是l,你這里處理過了就不用了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/61574.html
標籤:C語言
上一篇:請教關于隨機存盤/訪問
