• 八、字符串数组


    1.用于存放字符变量的数组称为字符数组
    2.字符数组属于一维数组,类型char
    3.字符串数组:是存放字符串的数组
    4.字符串数组定义:
    char 数组名[常量表达式1][常量表达式2{值1,值2...};
    chat strings[3][10] = {"iphone","Android","win8"};包含三个字符串
    5.字符串数组本质就是字符型二维数组。一个包含多个字符数组的数组
    6.字符数组,行代表的是每个字符串,列代表的是字符串中的字符。
    7.数据访问:
    (1)访问某个字符串。数组名[第一维下标]
    (2)访问某个字符。数组名[第一维下标][第二维下标]
    8.每个字符串长度,不可超过第二维长度-1,因为有
    9.每个字符串用数组名加一维下标表示
    例如strings[0]代表第一个字符串
    10.注意:字符串数组进行输入的时候,不适用“&”
    11.多维数组
    12.当数组下标在2个或者2个以上时,该数组称为多维数组。
             例如:
             int a[2][3][4]; 表示整型的三维数组,243
    13.元素个数 = 2*3*4
    14.三维数组的赋值运算
             for(int i = 0 ; i < 层数 i ++){
                for(int j = 0 ; j < 行数 ; j ++){
                    for(int k = 0 ; k < 行数; k ++){
                   
                    }
                }
             }
    15.注意事项
    (1)多维数组理论上位数可以任意
    (2)多维数组的元素个数 = 各维数 个数 乘积
    (3)多维数组占用内存 = 元素个数 乘以 单个元素所占空间
            //字符串中修改字符,字符串。打印字符和字符串
    //        char strings[3][10] = {"iPhone","iTouch","iPad"};
    //        strcpy(strings[0], "Mac book");//修改字符串
    //        strings[0][2] = 'Q';//修改字符
    //        printf("%s",strings[0]);//打印iTouch
    //        printf(" ");
    //        printf("%c",strings[0][4]);//打印第一个字符iPhone中的第四个字符o
    //        printf(" ");
            //请输入三个单词,判断哪个最大,并确定位置
    //        char strings[3][20] = {0};
    //        unsigned long maxLength = 0;
    //        int index = 0;
    //        printf("请输入三个单词,并用空格隔开:");
    //        scanf("%s%s%s",strings[0],strings[1],strings[2]);//输入三个字符
    //        for (int i = 0; i < 3; i ++) {
    //            unsigned long length = strlen(strings[i]);//定义长度
    //            if (maxLength < length) {//如果上一个字符串长度小于下一个字符长度
    //                maxLength = length;//拷贝为最大长度
    //                index = i;//纪录当前i的次数,即第几个最大
    //            }
    //        }
    //        printf("%s是最长单词,长度是%lu ",strings[index],maxLength);
            //手机通讯录里有10个人的名字(英文),从大到小排序
    //        char names[5][20] = {"doudou","chifan","shuijiao","dadoudou","zhangsan"};
    //        for (int i = 0; i < 5 - 1; i ++) {//冒泡排序法,控制趟数
    //            for (int j = 0; j < 5 - 1 - i; j ++) {//控制该趟比较次数
    //                if (strcmp(names[j], names[j+1]) > 0) {//字符比较,用strcmp函数
    //                    char temp[20] = {0};//定义一个空数组,用于中间变量的数值的接收
    //                    strcpy(temp, names[j]);//字符串复制,用strcpy函数
    //                    strcpy(names[j], names[j+1]);
    //                    strcpy(names[j+1], temp);
    //                }
    //            }
    //        }
    //        for (int i = 0; i < 5; i ++) {//for循环输出
    //            printf("%s ",names[i]);
    //        }
            //输入6个字符串,并对他们按从小到大排序
    //        char strings[6][20] = {0};
    //        printf("请输入6个字符:");
    //        scanf("%s%s%s%s%s%s",strings[0],strings[1],strings[2],strings[3],strings[4],strings[5]);
    //        for (int i = 0; i < 6 - 1; i ++) {
    //            for (int j = 0; j < 6 - 1 - i; j ++) {
    //                if (strcmp(strings[j], strings[j+1]) > 0) {
    //                    char temp[20] = {0};
    //                    strcpy(temp, strings[j]);
    //                    strcpy(strings[j], strings[j+1]);
    //                    strcpy(strings[j+1], temp);
    //                }
    //            }
    //        }
    //        for (int i = 0; i < 10; i ++) {
    //            printf("%s ",strings[i]);
    //        }
            //随机生成一个三维数组,编程求深度的平均值,保存在一个二维数组里
    //        char strings[3][4][5] = {0} , resStrings[4][5] = {0};
    //        for (int i = 0; i < 3 ; i ++) {
    //            for (int j = 0; j < 4; j ++) {
    //                for (int k = 0; k < 5; k ++) {
    //                    strings[i][j][k] = arc4random()%(100 - 10 + 1) + 10;
    //                    printf("%d ",strings[i][j][k]);
    //                }
    //                printf(" ");
    //            }
    //            printf(" ");
    //        }
    //        for (int i = 0; i < 4; i ++) {
    //            for (int j = 0; j < 5; j ++) {
    //                resStrings[i][j] = (strings[0][i][j] + strings[1][i][j] + strings[2][i][j]) / 3 ;
    //            }
    //        }
    //        printf("------输出深度------ ");
    //        for (int i = 0; i < 4; i ++) {
    //            for (int j = 0; j < 5; j ++) {
    //                printf("%d ",resStrings[i][j]);
    //            }
    //            printf(" ");//        }        /*找出一个二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可能没有鞍点),打印出相关信息*///        char strings[4][5] = {0};//        for (int i = 0; i < 4; i ++) {//            for (int j = 0; j < 5; j ++) {//                strings[i][j] = arc4random()%(100 - 10 + 1) + 10;//                printf("%d ",strings[i][j]);//            }//            printf(" ");//        }//        printf("----------------------------- ");//        int max = 0 , min = 0;//        int jMax = 0 , iMin = 0;//        for (int i = 0; i < 4; i ++) {//            for (int j = 0; j < 5; j ++) {//该行中最大//                if (max < strings[i][j]) {//                    max = strings[i][j];//                    jMax = j;//                    //iMin = i;//                }//            }//            min = strings[0][jMax];//            for (int i = 1; i < 4; i ++) {//该列中最小//                if (min > strings[i][jMax]) {//                    min = strings[i][jMax];//                    iMin = i;//                }//            }//            if (max == min) {//                printf("i=%d j=%d 鞍点=%d ",iMin,jMax,max);//            }//            //i = iMin;
    //        }
  • 相关阅读:
    利用.NET绘图技术制作水晶按钮控件(转)
    推荐几款皮肤界面工具
    同时避免GridView ArgumentNullException 值不能为空和使用Updatepanel乱码
    ASP.NET自动检测用户名是否注册(利用微软AJAX控件技术)
    ASP.NET的GridView在UpdatePanel里导出Excel的语句
    几款ASP.NET在线文本编辑器
    ASP.NET远程连接数据库SQL server
    ASP.NET一个页面多个Button按钮事件避免数据验证控件RequiredFieldValidator冲突方法
    使用面向oo对象方法的12个优点(转)
    C#中的DBNull、Null、""和String.Empty解释
  • 原文地址:https://www.cnblogs.com/gnhxsk/p/5170648.html
Copyright © 2020-2023  润新知