指针数组
来源:互联网 发布:中国人长相 知乎 编辑:程序博客网 时间:2024/06/04 19:25
- //_41_指针数组
- //_41_main.cpp
- //实例:在一个已经排好序的字符串数组中,插入一个键盘输入的字符串,
- //使其继续保持有序
- //区分char *point[10]和char (*point)[10]的区别
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main()
- {
- //声明子函数
- int binary(char *ptr[],char *str,int n);//查找函数声明
- void insert(char *ptr[],char *str,int n,int i);//插入函数声明
- int i;
- char *ptr1[6];
- printf("请为字符型指针数组赋初值:\n");
- for(i=0;i<5;i++)
- {
- ptr1[i] = (char *)malloc(20);//为指针分配地址
- gets(ptr1[i]);//输入字符串
- }
- ptr1[5] = (char *)malloc(20);
- printf("\n");
- printf("original string:\n");
- for(i=0;i<5;i++)//输出指针数组各个字符串
- printf("%s\n",ptr1[i]);
- printf("\ninput search string:\n");
- char *temp;
- temp = new char[20];//(char *)malloc(20)
- gets(temp);//输入被插字符串
- i = binary(ptr1,temp,5);//寻找插入位置
- printf("i = %d\n",i);
- insert(ptr1,temp,5,i);//在插入位置i初插入字符串
- printf("output strings:\n");
- for(i=0;i<6;i++)//输出指针数组全部字符串
- printf("%s\n",ptr1[i]);
- system("pause");
- return 0;
- }
- int binary(char *ptr[],char *str,int n)
- {
- //折半查找插入位置
- int high,low,mid;
- low = 0;
- high = n-1;
- //若插入字符串比字符串数组的第0个小,则插入位置为0
- if(strcmp(str,ptr[0])<0)
- return 0;
- //若插入字符串比字符串数组的最后一个大,则应插入字符串数组的尾部
- if(strcmp(str,ptr[high])>0)
- return n;
- while(low <= high)
- {
- mid = (low+high)/2;
- if(strcmp(str,ptr[mid])<0)
- high = mid - 1;
- else if(strcmp(str,ptr[mid])>0)
- low = mid + 1;
- else
- return mid;//插入字符串与字符数组的某个字符串相同
- }
- return low;//插入位置在字符数组中间
- }
- void insert(char *ptr[],char *str,int n,int i)
- {
- for(int j=n;j>i;j--)
- {
- strcpy(ptr[j],ptr[j-1]);//将插入位置后的字符串后移
- }
- strcpy(ptr[i],str);//将被插字符串按字典排序插入字符串数组
- }
0 0
- 指针数组、数组指针
- 指针数组/数组指针
- 指针数组/数组指针
- 数组指针 指针数组
- 指针数组,数组指针
- 数组,指针,数组指针
- 数组,指针,数组指针
- 指针数组&数组指针
- 指针数组&数组指针
- 数组指针 指针数组
- 指针数组/数组指针
- 数组指针&指针数组
- 数组指针 指针数组
- 数组指针 指针数组
- 指针数组 数组指针
- 指针数组,数组指针
- 指针数组 数组指针
- 指针数组&数组指针
- 二项分布
- 逆向分析入门
- 轮播加小圆点的疑问
- C/C++函数调用约定
- 前台进程和后台进程
- 指针数组
- Spring4深入理解AOP02----AOP简介,AspectJ,AOP基于注解和XML配置(5种通知,切面优先级)
- 动态接口实现网络加载
- 关于Spinner的使用
- 关于虚拟机测试双网卡绑定高可用的问题
- 2-SAT 解法浅析
- 重建二叉树
- 第九章 接口
- 对于自定义类,重写equals方法和hashCode方法的技巧