我家丫头的cpp

C语言指针使用的3个小例子

2019-11-29  本文已影响0人  李药师_hablee

指针使用实例1

#include<stdio.h>
//用指针比较输入字符串与指定字符串的大小
//相等时程序退出 
int main()
{
    char *p="CBA123map", a[20], *pa, *pp, flag;
    while(1)
    {
        printf("input a string:\n");
        gets(a);
        pp=p;
        pa=a;
        flag='E';//equal
        while(*pp!='\0') //指定字符还没有扫描结束 
        {
            if(*pa>*pp)
            {
                flag='H';//high
                break;//跳出当前循环 
            }
            if(*pa<*pp)
            {
                flag='L';//low
                break;//跳出当前循环 
            }
            pp++;
            pa++;           
        }
        if(flag=='E'&&(*pa!='\0'))//说明输入字符较长 
        {           
            flag='H';   
        }
        if(flag=='H')
        {
            printf("%s > CBA123map\n",a);
        }
        else if(flag=='L')
        {
            printf("%s < CBA123map\n",a);
        }
        else
        {
            //flag=="M"
            printf("相等! 程序结束!");
            break;//跳出当前循环 
        }
    }
    
    return 0;
}

指针使用实例2

//使用内置的字符串比较函数strcmp(param1,param2)比较指定字符串和输入字符串的大小
#include<stdio.h>
//用指针比较输入字符串与指定字符串的大小
//相等时程序退出 
int main()
{
    char *p="CBA123map", a[20], flag;
    while(1)
    {
        printf("input a string:\n");
        gets(a);                        
        if(strcmp(a,p)==0)//说明输入字符较长 
        {           
            printf("相等!程序结束!");
            break;  
        }
        else if(strcmp(a,p)>0)
        {
            printf("%s > CBA123map\n",a);
        }
        else
        {
            printf("%s < CBA123map\n",a);
        }       
    }
    
    return 0;
}

指针使用实例3

#include<stdio.h>
//用指针数组给另一个数组中的数据从小到大排序 
//数据本身的排列顺序不会变 
int main()
{
    int a[3];//数据
    int *p[3];//指针数组
    int *temp;//用于交换
    p[0]=&a[0];
    p[1]=&a[1];
    p[2]=&a[2]; 
    
    printf("input 3 nums:\n");
    scanf("%d %d %d",p[0],p[1],p[2]);
    
    if(*p[0]>*p[1])
    {
        //交换
        temp=p[0];
        p[0]=p[1];
        p[1]=temp; 
    }
    if(*p[0]>*p[2])
    {
        //交换
        temp=p[0];
        p[0]=p[2];
        p[2]=temp; 
    }
    if(*p[1]>*p[2])
    {
        //交换
        temp=p[1];
        p[1]=p[2];
        p[2]=temp; 
    }
    printf("在数组中的3个数是:%d %d %d\n",a[0],a[1],a[2]);
    printf("排序後的3个数是:%d %d %d",*p[0],*p[1],*p[2]);
     
     
    
    
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读