字符串数组倒序输出

这个是将字符串数组进行倒序输出的三段代码,其中第三段代码为网上摘抄的,但是原文用的是静态数组,自己改为了使用动态数组,然后稍作更改有了第一段代码,所以第一段代码跟第三段差不多,第二段也差不多就是了,这个案例让我对指针以及动态数组有了更深的理解。
关于指针的含义我是向这篇文章学习的,非常感谢!!
C语言中指针p、p以及&p之间的区别以及p和**p的区别
1.第一个

#include <stdio.h>
#include <stdlib.h>
int main()
{
   int n;//输入字符串的长度
//创建两个动态数组
  char *str=(char *)calloc(n+1,sizeof(char)); //接收输入的字符串,多申请的一位初始化为'/0'
  char *str1=(char *)calloc(n+1,sizeof(char)); //输出
  puts("请输入你要输出的字符串:");
  gets(str);
  str1=str1+n-1;
  for(;*str!='\0';str++,str1--){
    *str1=*str;
  }
printf("倒序后的结果为:%s",str1);
free(str); //释放动态数组的空间
free(str1);
}

第二个

#include <stdio.h>
#include <stdlib.h>
int main()
{
   int n;//输入字符串的长度
//创建两个动态数组
  char *str=(char *)calloc(n+1,sizeof(char)); //接收输入的字符串,多申请的一位初始化为'/0'
  char *str1=(char *)calloc(n+1,sizeof(char)); //输出
  puts("请输入你要输出的字符串:");
  gets(str);
  str1=str1+n-1;
  for(int i=0;i<n;i++){
    str1[len-i-1]=str[i]; //用比较熟悉的数组形式进行数据赋值

  }
printf("倒序后的结果为:%s",str1);
free(str); //释放动态数组的空间
free(str1);
}

第三个

#include <stdio.h>
#include <stdlib.h>
int main()
{
   int n;//输入字符串的长度
//创建两个动态数组
  char *str=(char *)calloc(n+1,sizeof(char)); //接收输入的字符串,多申请的一位初始化为'/0'
  char *str1=(char *)calloc(n+1,sizeof(char)); //输出
  puts("请输入你要输出的字符串:");
  gets(str);
  str1=str1+n-1;
 char *p1=str;
  char *p2=str1;
  printf("p1的长度为:%d \n",strlen(str));
  p2=p2+strlen(str)-1;
for(;*p1!='\0';p1++,p2--){
    *p2=*p1;
}
*p2='\0';
printf("倒序后的结果为:%s",str1);
free(str); //释放动态数组的空间
free(str1);
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值