指针元素的使用

指针作为数组元素指向字符串,指针元素按照指向的字符串由长到短的顺序存放。

程序

cpp 复制代码
#define ARRAY_LEN  5

void bubble_a(char *dat,char n,char *p[]);
void swap1( char *xp, char *yp );
void swap2( char **xp, char **yp );

void main( )
{
	char *myStrPtr[ARRAY_LEN]=
		{
		 "If anything can go wrong,it will.",
		 "Nothing is foolproof.",
         "",
		"hello world.",
		 "Every solution breeds new problem."
		};
	char SLEN[ARRAY_LEN]={0};
	int i,j;
	
	for(i=0; i<ARRAY_LEN; i++)
	  for(j=0; *(myStrPtr[i]+j)!='\0'; j++)
	    SLEN[i] += 1;
	bubble_a(SLEN, ARRAY_LEN, &myStrPtr[0]);
	while(1);
}
	void bubble_a(char *dat,char n,char *p[])
  {
	 int i,next;
	 for(next=1; next<n; next++)
	   for(i=next-1; i>=0; i--)
	    if(dat[i+1]>dat[i])   //条件成立,调用交换函数swap1、swap2
			{
				swap1(&dat[i+1],&dat[i]);
				swap2(&p[i+1],&p[i]);	
			}
   }
	void swap1( char *xp, char *yp )
  {
	 char temp;
	 temp=*xp;
	 *xp=*yp;
	 *yp=temp;
  }
	
  /*  指针xp、yp指向的是地址, *xp是p[i+1],*yp是p[i]  */
  void swap2( char **xp, char **yp )   
  {
	char *temp;
	temp=*xp;
	*xp=*yp;
	*yp=temp;
  }

执行程序后,数组myStrPtr的元素依次指向"Every solution breeds new problem.","If anything can go wrong,it will.", "Nothing is foolproof.","hello world."和空字符串。

相关推荐
燃于AC之乐1 小时前
我的算法修炼之路--4 ———我和算法的爱恨情仇
算法·前缀和·贪心算法·背包问题·洛谷
MM_MS6 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
独自破碎E7 小时前
【二分法】寻找峰值
算法
mit6.8247 小时前
位运算|拆分贪心
算法
ghie90908 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体18 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk9988 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab
Z1Jxxx8 小时前
加密算法加密算法
开发语言·c++·算法
乌萨奇也要立志学C++8 小时前
【洛谷】递归初阶 三道经典递归算法题(汉诺塔 / 占卜 DIY/FBI 树)详解
数据结构·c++·算法
vyuvyucd9 小时前
C++引用:高效编程的别名利器
算法