用指针进行字符串的复制,大小比较,长度运算

一、有一个字符串,从第n个开始复制成为另一个字符串

1、用数组的方法

#include<stdio.h>
int main()
{   void copy(char from[],char to[]);
    char a[20],b[20];
    gets(a);
    copy(a,b);
    printf("%s\n",b);
    return 0;
}
void copy(char from[],char to[])
{   int n=2,m=0;
    for(; from[n-1]!='\0'; n++,m++)
        to[m]=from[n-1];
    to[m]='\0';
}

运行结果:

aboy

boy

2、用指针的方法

#include<stdio.h>
int main()
{   char a[20],b[20];
    int n=2;
    gets(a);
    char *from=&a[n-1],*to=b;
    for(; *from!='\0'; from++,to++)
        *to=*from;
    *to='\0';
    printf("%s",b);
    return 0;
}

运行结果:

aboy

boy

 二、比较字符串的大小

#include<stdio.h>
#include<string.h>
int main()
{   void sort(char *name[],int n);
    void print(char *name[],int n);
    char *name[]= {"bHBUYj","HKUBjhbk","hvk","dBGGF","abcd"};
    int n=5;
    sort(name,n);
    print(name,n);
    return 0;
}
void sort(char *name[],int n)
{   char *t;
    int i,j,k;
    for(i=0; i<n-1; i++)      //选择法排序
    {   k=i;
        for(j=i+1; j<n; j++)
            if(strcmp(name[k],name[j])>0)k=j;
        if(k!=i)
        {
            t=name[i];
            name[i]=name[k];
            name[k]=t;
        }
    }
}
void print(char *name[],int n)
{   int i;
    for(i=0; i<n; i++)
        printf("%s\n",name[i]);
}

运行结果:

HKUBjhbk

abcd

bHBUYj

dBGGF

hvk

 三、有一字符串,写一函数,求字符串的长度,要求函数形参用指针变量

#include<stdio.h>
int main()
{   int lengh(char *p);
    int len;
    char str[20];
    scanf("%s",str);
    len=length(str);
    printf("%d",len);
    return 0;

}
int length(char *p)
{   int n=0;
    for(n=0; *p!='\0'; p++,n++)
        return(n);
}

运行结果:

China

0

运行出错,需将for语句改为for(n=0;*p!='\0';p++)n++;

才能得到正确的结果 5

 

转载于:https://www.cnblogs.com/hongjiamin/p/10183711.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值