1、用指针的方法编写一个函数,交换从键盘读入的两个整型数a和b;
#include <stdio.h>
#include <stdlib.h>
void swap(int *p1,int *p2){
int temp;
temp = *p1;
*p1=*p2;
*p2=temp;
}int main()
{
int x,y;
printf("请输入两个数:\n");
scanf("%d",&x);
scanf("%d",&y);
printf("输入的两个数为:%d,%d\n",x,y);
swap(&x,&y);
printf("交换后的两个数为:%d,%d\n",x,y);
}
在指针这里,think:当定义时 int *p;表示p是一个指向整型空间的指针(即地址);在程序中*p表示取p所指空间的内容;&x表示取x的地址;
swap(&x,&y)这里传的是x,y的地址,对应的void swap(int *p1,int *p2)这里要求的就是地址;,参数是指针,指针即地址。
2、编写一个函数 void invert(char str[ ]),将一个字符串的内容颠倒过来;
#include <stdio.h>
#include <stdlib.h>
void inverse(char str[])
{
char *p1=str;
char *p2=str;
char temp;
while(*p2!='\0')
p2++;
p2--;
while(p2>p1)
{
temp=*p1;
*p1=*p2;
*p2=temp;
p2--;
p1++;
}
}int main()
{
char str[100];
scanf("%s",str);
inverse(str);
printf("inverse hou de is %s\n",str);}
3、编写一个函数 int index(char *s,char *t),检查字符串s中是否包含字符串t,若包含则返回t在s中的开始位置(下标值),否则返回-1;
#include <stdio.h>
#include <stdlib.h>
int index(char *s,char *t)
{
int i,j,n=0;
for(i=0;t[i]!='\0';i++