大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C技巧 > 字符串转换整形数,结构体数组排序

字符串转换整形数,结构体数组排序

关键词:数组字符串整形排序转换  阅读(826) 赞(11)

[摘要]本文是对字符串转换整形数,结构体数组排序的讲解,与大家分享。
#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>


相关评论