12月12日 指针

  1. 以单词为单位,进行逆置(建议指针)

“hello  22111   student”  ===>  “student   22111  hello”

#include <stdio.h>

#include <string.h>

void fun();

int main(int argc, const char *argv[])

{

      int i,j;   

      char str[64]="hello 124   world";

      char *p=str;

      i=0;j=strlen(str)-1;

      fun(str,i,j);

      i=0;j=0;

      printf("调转%s\n",str);

      while(*p!='\0')

      {

            while(*p!=' '&&*p!='\0')

            {

                   p=p+1;

                   j++;

            }

            j--;

            fun(str,i,j);

            j=j+1;

            while(*p==' ')

            {

                   p=p+1;

                   j++;

            }

            i=j;

      }

      printf("逆值%s\n",str);

      return 0;

}

void fun(char str[64],int i,int j)

{

      char temp;

      while(i<j){

            temp=str[i];

            str[i]=str[j];

            str[j]=temp;

            i++;j--;

      }

      }    

2,使用指针实现字符串逆置

#include <stdio.h>

#include <string.h>

int main(int argc, const char *argv[])

{

      char str[50];

      char temp;

      printf("请输入字符串");

      gets(str);

      char *p=str;

      int i=0,j=strlen(str)-1;

      while(i<j)

      {

            temp=*(p+i);

            *(p+i)=*(p+j);

            *(p+j)=temp;

            i++;j--;

      }

      printf("逆置为%s\n",str);

      return 0;

}

3,使用指针计算计算每一位数字的和

“fa4621” ===>4+6+2+1=13

#include <stdio.h>

int main(int argc, const char *argv[])

{

      printf("请输入");

      char str[50];

      scanf("%s",str);

      char *p=str;

      int sum=0;

      while(*p!='\0')

      {

            if(*p>='0'&&*p<='9'){

                   sum=sum+*p-48;

            }

            p++;

      }

      printf("字符和为%d\n",sum);

     

      return 0;

}

4,分析以下指针

Int a=100;  int  *p=&a;

*p++    值为100,指针指向下一个int长度的地址;

*++p    指针指向下一个int长度的地址,然后取值;

*(p+2)   指针指向后面的2个int长度的地址,然后取值;

*p-2     指针p取值,然后减2

&p+1    对指针p取地址,然后加1;

--*p         对p取值,然后减1;

&a+1    对a取地址,然后加一个int的长度

&a--            报错。

Vivado2023是一款集成开发环境软件,用于设计和验证FPGA(现场可编程门阵列)和可编程逻辑器件。对于使用Vivado2023的用户来说,license是必不可少的。 Vivado2023的license是一种许可证,用于授权用户合法使用该软件。许可证分为多种类型,包括评估许可证、开发许可证和节点许可证等。每种许可证都有不同的使用条件和功能。 评估许可证是免费提供的,让用户可以在一段时间内试用Vivado2023的全部功能。用户可以使用这个许可证来了解软件的性能和特点,对于初学者和小规模项目来说是一个很好的选择。但是,使用评估许可证的用户在使用期限过后需要购买正式的许可证才能继续使用软件。 开发许可证是付费的,可以永久使用Vivado2023的全部功能。这种许可证适用于需要长期使用Vivado2023进行开发的用户,通常是专业的FPGA设计师或工程师。购买开发许可证可以享受Vivado2023的技术支持和更新服务,确保软件始终保持最新的版本和功能。 节点许可证是用于多设备或分布式设计的许可证,可以在多个计算机上安装Vivado2023,并共享使用。节点许可证适用于大规模项目或需要多个处理节点进行设计的用户,可以提高工作效率和资源利用率。 总之,Vivado2023 license是用户在使用Vivado2023时必须考虑的问题。用户可以根据自己的需求选择合适的许可证类型,以便获取最佳的软件使用体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值