C语言程序设计实验报告
实验10 使用指针的程序设计(2)
班级 2013156 学号 201315613 姓名 吴浩
一、实验目的
(1)掌握指针的概念,会定义和使用指针变量;
(2)能正确使用字符串的指针和指向字符串的指针变量。
(3)能正确使用指向函数的指针变量;
(4)了解指向指针的指针的概念及其使用方法。
二、实验内容及步骤
1.从键盘输入一个字符串,实现利用字符指针将字符串的字符顺序逆置并输出。(例如输入abcdef,输出fedcba)。请编写相应的程序代码,并调试运行出正确结果。
程序代码:
#include
#include
void main()
{ int i;
int length;
char str[80];
char s;
printf("请输入一个字符串:
");
scanf("%s",str);
length=strlen(str);
printf("字符串逆序输出为:
");
for(i=length;i>0;i--)
{ s=str[i-1]; printf("%c",s);}
printf("
"); }
void fun (char *s )
{ int i ,length;
char temp;
length = strlen( s );
for(i = 0;i < length / 2; i++)
{ temp=s[i];
s[i]=s[length-i-1];
s[length-i-1]=temp;}
}
运行结果:
2.写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:用****作为结束输入的标志。)
程序代码:
#include
#include
void main()
{ void MaxString(char(*p)[81],char **max,int num);
int n,i=0;
char str[10][81],*pt=NULL;
printf("请输入几个字符串,以字符串****作为结束标志!:
");
while(!strcmp(str[i-1],"****")==0)
{gets(str[i]);
i++; }
n=i;
MaxString(str,&pt,n);
printf("在您输入的字符串中,最长的字符串为:
");
puts(pt);
}
void MaxString(char(*p)[81],char **max,int num)//形参二维指针max用于接收main()中最长字符串指针的地址
{ *max=p[0];
for(int i=1;istrlen(*max))
{*max=p[i];}
}
}
运行结果:
3.编写在字串str1中找出所有非数字的字符串当成一个空格,存入字符数组str2中(所有数字字符也必须依次存入str2中),str1不变仍为原字串的程序。例如,字符串str1为"$Ts!47&*s456 a23* +B9k",调用函数fun后,字符数组str2将存入" 47 456 23 9 ",str1仍然是"$Ts!47&*s456 a23* +B9k"。
程序代码:
#include