今天复习,加强对指针的应用。
作业1
#include<stdio.h>
int fun(char *p);
int main()
{
char a[20]={"\0"};
scanf("%s",a);
int b;
b=fun(a);
printf("%d",b);
}
int fun(char *p)
{
int i=0;
while(*(p+i)!='\0')
{
i++;
}
return i;
}
作业2
#include<stdio.h>
#include<string.h>
void fun(char *p1,char *p2,char *p,int len1,int len2,int a,int f);
int main()
{
char s1[27]={"\0"};
char s2[27]={"\0"};
char s[54]={"\0"};
int a;
gets(s1);
gets(s2);
scanf("%d",&a);
if(a>strlen(s1)||a>strlen(s2))
{
printf("输入有误!请重新输入。");
}
if(a<=strlen(s1)&&a<=strlen(s2))
{
if(strlen(s1)>=strlen(s2))
{
fun(s1,s2,s,strlen(s1),strlen(s2),a,1);
puts(s);
}
if(strlen(s1)<strlen(s2))
{
fun(s1,s2,s,strlen(s1),strlen(s2),a,2);
puts(s);
}
}
}
void fun(char *p1,char *p2,char *p,int len1,int len2,int a,int f)
{
int i;
char temp;
if(f==1)
{
for(i=0;i<=len1;i++)
{
if(i<a-1)
{
*(p+i)=*(p1+i);
}
if(i==a-1)
{
*(p+i)=*(p1+i);
*(p+i+1)=*(p2+i);
}
if(i>a-1)
{
*(p+i+1)=*(p1+i);
}
}
}
if(f==2)
{
for(i=0;i<=(len2)+2;i++)
{
if(i<a-1)
{
*(p+i)=*(p1+i);
}
if(i==a-1)
{
*(p+i)=*(p1+i);
*(p+i+1)=*(p2+i);
}
if(i>a-1&&i<=len1)
{
*(p+i+1)=*(p1+i);
}
if(i>len1)
{
*(p+i)=*(p2+i-2);
}
}
}
}
作业3
#include<stdio.h>
int fun(char *p,int f);
int main()
{
char a[100]={"\0"};
gets(a);
printf("字母个数:%d\n数字个数:%d\n空格个数:%d\n",fun(a,1),fun(a,2),fun(a,3));
}
int fun(char *p,int f)
{
int i;
int m=0,n=0,b=0;
if(f==1)
{
for(i=0;i<100;i++)
{
if(*(p+i)>='a'&&*(p+i)<='z'||*(p+i)>='A'&&*(p+i)<='Z')
{
m++;
}
}
return m;
}
if(f==2)
{
for(i=0;i<100;i++)
{
if(*(p+i)>='0'&&*(p+i)<='9')
{
n++;
}
}
return n;
}
if(f==3)
{
for(i=0;i<100;i++)
{
if(*(p+i)==' ')
{
b++;
}
}
return b;
}
}