指针元素的使用

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

程序

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."和空字符串。

相关推荐
梓䈑9 小时前
【算法题攻略】BFS 解决FloodFill 算法、最短路问题、多源BFS 和 拓扑排序
c++·算法·宽度优先
Adios79412 小时前
设置交集大小至少为2
数据结构·算法·leetcode
来一碗刘肉面18 小时前
栈的应用(表达式求值)
数据结构·算法
xiaowang1234shs19 小时前
怪兽轻断食技术深度测评:从断食计时引擎到AI识别算法的工程实践解析
数据库·人工智能·算法·macos·机器学习·p2p·visual studio
小果因子实验室19 小时前
量化研究--策略迁移算法1研究
算法
Web极客码20 小时前
如何用三段式确定性剪枝,为 LLM Agent 砍掉 35% 的 Token 成本?
服务器·人工智能·算法·机器学习
程序猿乐锅20 小时前
【数据结构与算法 | 第六篇】力扣1109,1094差分数组
java·算法·leetcode
wabs66621 小时前
关于图论【广度优先搜索的理论基础】
算法·图论·宽度优先
孤魂23321 小时前
逻辑回归算法
算法·机器学习·逻辑回归