zoukankan      html  css  js  c++  java
  • C:函数:功能:实现字符数组中所有字母的倒序存放并输出

    前两天小测碰到一道题,建立一个函数,功能:实现字符数组中所有字母的倒序存放并输出,一开始觉得简单跟数字数组差不多,运行一下发现很多格式错误,这些是不必要的错误,现在就来说下,先说一下代码思路:定义一个字符数组假如有n个字符,让一个指针变量*p指向首地址,*(p+n-1)就是末地址,然后实现*p与*(p+n-1)值的互换,这边让*q=*(p+n-1)每换一次,p++,q--,当p>q时退出循环,我们来看下代码:

     1 #include "stdio.h"
     2 char change(char *p,int y);
     3 void main()
     4 {
     5     char a[6]="abcdef";
     6     change(a,6); 
     7     printf("%s",a);
     8 }
     9 char change(char *p,int y)
    10 {
    11     char *q;
    12     int temp;//这边比较容易错,有的定性思维,会定义成char类型;
    13     q=p+y-1;
    14     while(p<q)
    15     {
    16         temp=*p;
    17         *p=*q;
    18         *q=temp;
    19         p++;
    20         q--;
    21         }
    22 }

    这边只是令n=6,看的更清晰一点,要复杂一点的话,我们也可以自己输入字母,想要几个就几个,这次我用gets()来输入,假如输入n个,那我们怎么知道这个n的值,我们可以先定义*p1让p=a,既指向首地址,要是超过末地址也就是*(p+n)==0,这就给我们一个结束循环的条件:

    #include "stdio.h"
    void main()
    {
        char a[1000];
        gets(a);
        char *p;
        int i,n;
        i=0;
        p=a;
        while(*(p+i)!=0)
        {
            i++;
            
        }
        n=i;
        printf("%d",n);
    }

    上面代码可以求出我们手动输入字母的个数再加上change()函数就可以了:

    #include "stdio.h"
    char change(char *p,int y);
    void main()
    {
        char a[1000];
        printf("input letter:
    ");
        gets(a);
        char *p1;
        int i,n;
        i=0;
        p1=a;
        while(*(p1+i)!=0)//超出地址结果为0
        {
            i++;
        }
        n=i;
        change(a,n);
        printf("output:
    %s",a);
    }
    char change(char *p,int y)
    {
        char *q;
        int temp;
        q=p+y-1;
        while(p<q)
        {
            temp=*p;
            *p=*q;
            *q=temp;
            p++;
            q--;
            }
    }

    运行结果:,要是数字数组的话也是差不多的。

  • 相关阅读:
    numpy数组各种乘法
    python测试函数的使用时间
    dataframe 列名重新排序
    《图解设计模式》读书笔记5-1 composite模式
    《图解设计模式》读书笔记4-2 STRATEGY模式
    《图解设计模式》读书笔记4-1 Bridge模式
    《图解设计模式》读书笔记3-3 Builder模式
    《图解设计模式》读书笔记3-2 Prototype模式
    《图解设计模式》读书笔记3-1 Singleton模式
    《图解设计模式》读书笔记2-2 Factory Method模式
  • 原文地址:https://www.cnblogs.com/doudoublog/p/5041450.html
Copyright © 2011-2022 走看看