2020-04-15

#include

#include

//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

{

if(tempMax<*(pa+i))

{

tempMax=*(pa+i);

}

}

printf("Max is:%d\n",*pmax);

printf("Max position is:");

for(i=0;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

{

scanf("%d",(pa+i));

}

}

//2.编写一函数,求一个字符串的长度,要求用字符指针实现。在主函数中输入字符串,调用该函数输出其长度。

void fun(char *p,int n)

{

int i;

for(i=0;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

    {

    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

{

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

    {

    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));

}

你可能感兴趣的:(2020-04-15)