反向打印一句话

反置输出一句话

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include "windows.h"
void A(char * l,char *r)
{
	int i=0;char tmp;
	while (l<r)
	{
	        tmp = *l;
            *l =*r ;
	        *r = tmp;
			l++;
			r--;
	}
}
void Show(char* arr,int len )//在这里反置每个单词
{
	int i=0;
	char *l =arr;
	char *r =arr;
	      while(i<len-1)//条件为真执行`
		  {
			  if(arr[i]==' '||arr[i]=='\0')
			  {
				  r--;//位置退回到单词尾
			  A(l,r);//反转字符串//将内部单词反转
			  r=2+r;//反转之后,l 右移//跳过空格
			  l=r;//下一个单词开始
			  }
			  else 
			  {
				  r++;下标右移
			  }
			  i++;//下标右移
		}
		  
}
int main ()
{
	char arr[]="student a am i";char*c=arr;int i;
	int len=sizeof(arr)/sizeof(arr[0]);char *d=c+len-1;
	Show(arr,len);
	A(c,d);
	for(i=0;i<len;i++)//i=0时打印的是一个'\0'对应的是空的,或者让i 从1开始
		if(arr[i] != '\0')
    printf("%c",arr[i]);//主要就是因为字符串不能以‘\0’开头  采用%c输出
    system("pause");
	return 0;
}

这种题就是应该写两个函数 ,一个反置内部,一个整体反置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值