1、从字符串中s中删除所有小写字母c
#include<stdio.h>
void fun(char *l);
int main(void)
{
char s[10];
gets(s);
puts(s);
fun(s);
puts(s);
return 0;
}
void fun(char *l)
{
int i, j=0;
for (i = 0; l[i] != '\0'; i++)
{
if (l[i] != 'c')
{
l[j] = l[i];
j++;
}
}
l[j] = '\0';
}
2、输出数组全部元素,要求用指针变量指向数组
#include<stdio.h>
int main(void)
{
int a[5] = { 0 };
int i, *p=a;
for (i = 0; i < 5; i++)
{
scanf("%d ",p+i);
}
for (i = 0; i < 5; i++)
{
printf("%d", *p++);
}
return 0;
}
输出数组也可以表达为
for(p=a;p<(a+10);p++)
printf("%d",*p);
3、输入一个姓名,输出其姓氏(姓和名用空格隔开)
#include<stdio.h>
#iinclude<string.h>
main()
{
char *p1,*p2,*p3;
gets(p1);
p3=p2; //保留p2起始地址 //
while(*p1!='')
{
p1++;
p2++;
}
*p2='\0';
puts(p3);
}
4、实现两个整数的交换
#include<stdio.h>
void fun (int *m,int *n);
int main(void)
{
int a,b;
scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%d b=%d ",a,b);
return 0;
}
void fun (int *m,int *n)
{
int t;
t=*m;
*m=*n;
*n=t;
}
5、将数组元素倒置输出
#include<stdio.h>
#define max 10
void fun(int *l, int m);
int main(void)
{
int r[max],i,n;
puts("请输入数组长度n不大于10");
scanf("%d", &n);
printf("\n");
puts("请输入数组");
for (i = 0; i < n; i++)
scanf("%d",r+i);
fun(r,n);
return 0;
}
void fun(int *l, int m)
{
int i,t;
for (i = 0; i < m / 2; i++)
{
t = *(l + i);
*(l + i) = *(l + m-1- i);
*(l + m-1 - i) = t;
}
for (i = 0; i < m; i++)
printf("%d ", *(l + i));
}
切记函数在直接调用时无法改变原参数的值,要使用指针间接调用