字符串转换整形数,结构体数组排序
#include <stdio.h> #include<string.h> #include<conio.h> #include <stdlib.h> FILE *p; #define N 3 struct hacker { char name[11]; char num[20]; char xingbie[3]; }z[N]; //输入模块 void shuru() { char *s="网名 QQ号码 性别信息"; int i; system("cls"); printf("欢迎进入录入模块!\n\n"); p=fopen("d:\\hacker.txt","w+"); printf("请输入人员的网名 QQ号码 性别信息\n\n"); fprintf(p,"%s\n",s); for(i=0;i<N;i++)//i<=2停止 0 1 2 { scanf("%s%s%s",z[i].name,z[i].num,z[i].xingbie); fprintf(p,"%s\t%s\t%s\n",z[i].name,z[i].num,z[i].xingbie); } fclose(p); printf("\n录入完成!按任意键继续!!!\n"); getch(); } //浏览模块 void liulan() { int j; system("color a"); system("cls"); printf("欢迎进入浏览模块!\n\n"); printf("下面是浏览记事本中的结果:\n\n"); p=fopen("d:\\hacker.txt","r"); for(j=0;!feof(p);j++) { putchar(fgetc(p));/*读取一个字符同时输出*/ } printf("\n浏览完毕!按任意键继续!!!\n"); getch(); fclose(p); } //排序模块 void paixu() { int i,j; struct hacker t; system("cls"); printf("欢迎进入排序模块!\n\n"); printf("排序前:\n\n"); for(i=0;i<N;i++)//i<=2停止 0 1 2 { printf("%s\t%s\t%s\n",z[i].name,z[i].num,z[i].xingbie); } for(i=0;i<N;i++) { for(j=i;j<N;j++) if(atoi(z[i].num)<atoi(z[j].num)) { t=z[i]; z[i]=z[j]; z[j]=t; } } printf("\n排序后:\n\n"); for(i=0;i<N;i++)//i<=2停止 0 1 2 { printf("%s\t%s\t%s\n",z[i].name,z[i].num,z[i].xingbie); } printf("\n排序完毕,按任意键继续!\n"); getch(); } //查找模块 void chazhao() { char a[20]; int i,j; system("cls"); printf("欢迎进入查询模块!\n\n"); p=fopen("d:\\hacker.txt","r"); printf("请输入你需要查找的QQ号:"); scanf("%s",a); for(j=0;!feof(p);j++) { fgetc(p); } printf("\n查找结果如下:\n\n"); for(i=0;i<j-1;i++) { if(strcmp(a,z[i].num)==0) printf("网名:\t%s\tQQ号:\t%s\t性别:\t%s\n",z[i].name,&z[i].num,z[i].xingbie); } printf("\n\n查找完毕!按任意键继续!\n\n"); getch(); fclose(p); } //主函数 void main() { int a,i; system("color 0a"); for(i=1;a!=0;i++) { system("cls"); printf("★******************************************************************★\n"); printf("§*******************★欢迎使用社工系统★*****************************§\n"); printf("§*********************************************************************************§\n"); printf("§§ §§\n"); printf("§§ 功能说明: §§\n"); printf("§§ §§\n"); printf("§§ 1.-输入信息! §§\n"); printf("§§ 2.-浏览信息! §§\n"); printf("§§ 3.-排序信息! §§\n"); printf("§§ 4.-查找信息! §§\n"); printf("§§ 0.-退出系统! §§\n"); printf("§§ §§\n"); printf("§§ by 星云! §§\n"); printf("§§ §§\n"); printf("★***********************************************************************************★\n"); printf("请选择0-3选项:"); scanf("%d",&a); switch(a) { case 1:shuru();break; case 2:liulan();break; case 3:paixu();break; case 4:chazhao();break; case 0:break; default:printf("选择错误,按任意键后请重新选择!\n");getch();break; } } }
C语言库函数名: atoi
功 能: 把字符串转换成整型数
函数说明: atoi()会扫描参数nptr字符串,检测到第一个数字或正负符号时开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。
原型: int atoi(const char *nptr);
需要用到的头文件: #include <stdlib.h>
*********************
交流即分享,分享才能进步!
不对之处,还请各位前辈多多指教。
by 星云
********************