#include<stdio.h>
#include<string.h>
//1.从键盘上输入10个数据到一维数组中,然后找出数组中的最大值和该值所在的元素下标.
void search(int *pa,int n,int *pmax,int *pflag)
{
int i,k,j;
int tempMax=*pa;
pmax= &tempMax;
for(i=0;i<n;i++)
{
if(tempMax<*(pa+i))
{
tempMax=*(pa+i);
}
}
printf("Max is:%d\n",*pmax);
printf("Max position is:");
for(i=0;i<n;i++)
{
if(*pmax==*(pa+i))
{
pflag=&i;
j=*pmax;
k=*(pa+i);
printf("%d ",*pflag);
}
}
}
void ScanfFun(int *pa,int n)
{
printf("Input 10 numbers:\n");
int i;
for(i=0;i<n;i++)
{
scanf("%d",(pa+i));
}
}
//2.编写一函数,求一个字符串的长度,要求用字符指针实现。在主函数中输入字符串,调用该函数输出其长度。
void fun(char *p,int n)
{
int i;
for(i=0;i<n;i++)
{
if(*(p+i)=='\0')
{
break;
}
}
printf("长度:%d\n",i);
}
//3.从键盘上先后读入两个字符串,假定存储在字符数组s1和s2中
void Test3(char *p1,char *p2,int L1,int L2,int n)
{
char s[L1+1];
char ss[L2-L1];
int i,index=0;
if(n>L1||n>L2)
{
printf("输入错误,输入的N大于字符串长度\n");
return;
}
for(i=0;i<=L1+1;i++)
{
if(i<n)
{
s[i]=*(p1+i);
}else if(i==n)
{
s[i]=*(p2+n);
}else{
s[i]=*(p1+i-1);
}
}
s[L1+1]='\0';
if(L2>L1)
{
for(i=0;i<L2;i++)
{
if(i>=L1)
{
ss[index]=*(p2+i);
index++;
}
}
}
ss[n]='\0';
strcat(s,ss);
puts(s);
}
//4.编写一个函数,用于统计一个字符串中字母、数字、空格的个数。
//在主函数中输入该字符串后,调用上述函数,并输出统计结果。
void Test4(char *p,int n)
{
int i,num=0,_aNum=0,_num=0;
for(i=0;i<n;i++)
{
if(*(p+i)>=48&&*(p+i)<=57)
{
num++;
}else if((*(p+i)>64&&*(p+i)<91)||(*(p+i)>96&&*(p+i)<=122))
{
_aNum++;
}else if(*(p+i)==' ')
{
_num++;
}
}
printf("数字个数:%d, 字母个数:%d ,空格个数:%d\n",num,_aNum,_num);
}
void main()
{
int arr1[10];
int *pmax, *pflag;
char arr2[100]={"adafgasdasdfsaf"};
char s1[27],s2[27];
char strArr[100]={"vdhfv sh345#%^$$%^456"};
fun(arr2,strlen(arr2));
//ScanfFun(arr1,10);
//search(arr1,10,pmax,pflag);
gets(s1);
gets(s2);
Test3(s1,s2,strlen(s1),strlen(s2),2);
//Test4(strArr,strlen(strArr));
}