第七次作业

最大字符串

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void find(char *name[],int n,int *p)
{
    int i,j,max,len1,len2;
    max=0;
    for(i=1;i<n;i++)
    {
        len1=strlen(name[max]);
        len2=strlen(name[i]);
        if(len2>len1)
            max=i;
        else if(len1==len2)
        {
            for(j=0;j<len1;j++)
            {
                if(name[i][j]>name[max][j])
                {
                    max=i;
                    break;
                }
                else if(name[i][j]<name[max][j])
                    break;
            }
        }
    }
    *p=max;
}
int main()
{
    void find(char *name[],int n,int *p);
    int i,p;
    char *name[10],s[6];
    i=0;
    while(gets(s),strcmp(s,"*****")!=0)
    {
        name[i]=malloc((strlen(s)+1)*sizeof(char));
        strcpy(name[i],s);
        i++;
    }
    find(name,i,&p);
    puts(name[p]);
    return 0;
}

截断字符串

#include<stdio.h>
#include<string.h>

void my_copy(char *p,char *q,int m,int n)
{
    int i;
    for(i = m - 1;i < n;i ++)
    {
        *q = *(p + i);
        q++;
    }
    *q = '\0';
}

int main(int argc, const char *argv[])
{
    char str1[30],str2[30];
    int m,n ;
    gets(str1);
    scanf("%d",&m);
    n = strlen(str1);
    my_copy(str1,str2,m,n);
    puts(str2);
    return 0;
}
编写一函数,求一个字符串的长度,要求用字符指针实现。在主函数中输入字符串,调用该函数输出其长度。输出行末无多余空格

#include<stdio.h>
int main()
{
    char a[50];
    gets(a);
    char *p=&a[0];
    int sum,i;
    sum=0;
    for(i=0;i<50;i++,p++)
        {
            if(*p!='\0')
                { 
                    sum++;
                }
            else
                {
                    break;
                }
        }
    printf("%d",sum);
}

请编写一个函数,函数参数为指针类型,功能为翻转一个字符串。即将“abcd”翻转为“dcba”.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverse(char* p)
{
    int i;
    char tmp;
    int len = strlen(p);
    int haf = len /2;
    for (i =0; i< haf; i++)
    {
        tmp = p[i];
        p[i] = p[len -1-i];
        p[len -1-i] = tmp;
    }
}
int main()
{
    char ss[100]={0};
    gets(ss);
    reverse(ss);
    printf("%s\n",ss);
    return 0;
}

猜猜我多长

#include<stdio.h>
int qiuchangdu(char *p)
{int sum,i;
    sum=0;
    for(i=0;i<50;i++,p++)
        {
            if(*p!='\0')
                { 
                    sum++;
                }
            else
                {
                    break;
                }
        }
    return sum;
}        
int main()
{
    char a[50];
    gets(a);
    char *p=&a[0];
    printf("%d",qiuchangdu(a));
}

用指针输出数组

#include <stdio.h>
int main()
{
    int a[10], *p;
    for (p=a, printf(""); p<a+10; scanf("%d", p++));  
    for (p=a, printf(""); p<a+10; printf("%d ", *p++));                
    printf("\n");
    return 0;
}

字符串滞销,救救码农吧

#include<stdio.h>

void main()
{
    char a[100],b[100],*p1=a,*p2=b;
    gets(a);
    for(;*p1!='\0';p1++)
    {
        *p2=*p1;
        p2++;
    }
    *p2='\0';
    puts(b);


}

交换两个数字

#include "stdio.h"
void fun(int  *x,int  *y)
{
 int t;
 t=*x;
 *x=*y;
 *y=t;  
}

void main()
{
  int a,b;
  scanf("%d%d",&a,&b);
  fun(&a,&b);
  printf("%d %d\n",a,b);
}
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值