当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++基础入门教程

反转数组与逆序输出数组

    反转需要改变数组的位置,逆序输出没有改变位置,谭浩强C语言书中有讲到反转整数数组的例子。


     /*这段是C语言反转字符数组代码,注意如果是中文会乱码*/
    #include <string.h>
    #include <stdio.h>
    void rever_char(char c[],int n)
    {
     char temp;
     int i,j = n-1,m = (n-1)/2;
     for(i = 0; i <= m; i++)
     {
      j = n-1-i;
      temp = c[i];
      c[i] = c[j];
      c[j] = temp;
     }
    }
    void main()
    {
     char my[] = "I am a student!";
     int length = strlen(my);
     int i;
     for(i = 0; i < length; i++)
     {
      printf("%c",my[i]);
     }
     printf("\n");

     rever_char(my,length);
     for(i = 0; i < length; i++)
     {
      printf("%c",my[i]);
     }
     printf("\n");
    }

    /* 这段是C#反转字符数组的代码 */
    using System;

    namespace Test
    {
     class Class1
     {
      static void Main(string[] args)
      {
       string my = "中华人民共和国abcde";
       char[] c = my.ToCharArray();
       Array.Reverse(c);
       for(int i = 0; i < c.Length; i++)
       {
        Console.Write(c[i]);
       }
       Console.ReadLine();
      }
     }
    }

    /* 这段是调用C++的栈库实现的逆序输出字符数组的代码,若有中文会乱码 */
    #include <stack>
    #include <iostream>
    #include <string.h>

    using namespace std;
    void main()
    {
     stack <char> haha;
     char my[] = "who are you!";
     int length = strlen(my);
     for(int i = 0; i < length; i++)
     {
      haha.push(my[i]);
     }
     while(!haha.empty())
     {
      cout<<haha.top();
      haha.pop();
     }
     cout<<endl;
    }

    /* 这段是C语言逆序输出完全是中文的代码 */
    #include <string.h>
    #include <stdio.h>

    void main()
    {
     char my[] = "中华人民共和国";
     int length = strlen(my);
     int i;

     for(i = 0; i < length; i++)
     {
      printf("%c",my[i]);
     }
     printf("\n");


     for(i = length - 1; i >0; i-=2)
     {
      printf("%c",my[i-1]);
      printf("%c",my[i]);
     }
     printf("\n");
    }

相关内容
赞助商链接