C语言 精选真题16

解法一:

void fun (char  *w,int  m)
{
  int i,j;
  char temp;   //临时变量
  for(i=1;i<=m;i++)    //移动的次数,不是遍历数组
  {
	temp=w[0];
	for(j=1;w[j]!='\0';j++) //遍历字符串
	{
		w[j-1]=w[j];        //移动
	}
	w[j-1]=temp;            //最后一个元素赋值
  }
}

解法二:

void fun (char  *w,int  m)
{
  int i,j;
  char temp;
  int len=strlen(w);
  for(i=1;i<=m;i++)
  {
	temp=w[0];
	for(j=1;j<=len-1;j++)
	{
		w[j-1]=w[j];
	}
	w[j-1]=temp;
  }
}

/*相比于遍历整形数组,字符串数组有很多不一样的地方
1.数组遍历的方式
对于整形数组;
for(int i=0;i<n;i++)
{}
对于字符串数组;
for(j=0;w[j]!='\0';j++)
{}
2.
赋值的方式
对于整形数组,有int temp;
w[n-1]=temp;
对于字符串数组,有char temp;
w[j]=temp;这里借助的是j,因为w[j]!='\0',所以在退出循环的时候w[j]表示的是数组的最后一个。
*/
/*
解法一二的区别在于判断循环的条件:
解一在于判断元素是否为'\0';
解二通过求出字符串长度进而得到对j的值的限定
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值