|
![]() | 作者: battle [battle]
![]() |
登录 |
#include "stdio.h" #include "string.h" #include "conio.h" char genNewID( char ID[], char NewID[]) { int W[18] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1}; char A[11] = {'1','0','x','9','8','7','6','5','4','3','2'}; int i,j,S; if(strlen(ID) != 15) return -1; memcpy( NewID, ID, 6 ); NewID[6]='1'; NewID[7]='9'; NewID[8]=0; strcat( NewID, &ID[6] ); S = 0; for(i=0;i<17;i++) { j = (NewID[i] - '0') * W[i]; S = S + j; } S = S % 11; NewID[17] = A[S]; NewID[18] = 0; return A[S]; } int main(int argc, char* argv[]) { char ID[20], NewID[20], ret; puts("输入原来的15位身份证号码,产生新的18位身份证号码\n"); do{ printf("Input your old 15 ID Card: "); scanf( "%s", ID ); if(stricmp(ID, "exit") == 0)break; ret = genNewID( ID, NewID ); printf("Your New 18 ID Card: %s \n\n", ret != -1 ? NewID : "Input Error!!"); }while(1); getch(); return 0; } |
地主 发表时间: 04-06-25 11:19 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号