指针使用实例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;
}
网友评论