字符串倒序输出

(一)用基本的数组实现

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

int main()
{
    char ch1[10] = "abcde", ch2[10] = {0};
    int n=0, i=0, j=0;
    n = strlen(ch1);
    for(i = n-1; i>=0; i--)
    {
        ch2[j] = ch1[i];
        j++;
    }
    printf("%s\n%s\n", ch1, ch2);
    return 0;
}

(二)加入向量vector, vector是具有方向的矢量容器,使用时,需include <vector>

#include "stdafx.h"
#include <stdio.h>
#include <string.h>using namespace std;#include <vector>
int main()
{
    char ch1[10] = "abcde", ch2[10] = {0};
    int n=0, i=0, j=0;
    n = strlen(ch1);
    vector <char> cVec(ch1, ch1+n);
    for(i = cVec.size()-1; i>=0; i--)
    {
        ch2[j] = ch1[i];
        j++;
    }
    printf("%s\n%s\n", ch1, ch2);
    return 0;
}

(三)加入迭代器(iterator), iterator是一中检查容器内元素并遍历元素的数据类型,每个容器都可以定义自己的迭代器。

使用迭代器,需include <iterator>

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
using namespace std;
#include <vector>
#include <iterator>

int main()
{
    char ch1[10] = "abcde", ch2[10] = {0};
    int n=0, i=0, j=0;
    n = strlen(ch1);
    vector <char> cVec(ch1, ch1+n);    vector <char>::reverse_iterator cRIter;
    for(cRIter=cVec.rbegin(); cRIter!=cVec.rend(); cRIter++)
    {
        ch2[j] = *cRIter;//同时也可更改*cRIter为cRIter[0];
        j++;
    }
    printf("%s\n%s\n", ch1, ch2);
    return 0;
}

(四)使用双向链表list,list可以被视为一个双向链表,每个元素都具有前后元素的链接

1. (同上为反向迭代器)

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
using namespace std;
#include <list>
#include <iterator>

int main()
{
    char ch1[10] = "abcde", ch2[10] = {0};
    int n=0, i=0, j=0;
    n = strlen(ch1);
    list<char> cList(ch1, ch1+n);
    list<char>::reverse_iterator cRIter;

    for(cRIter=cList.rbegin(); cRIter!=cList.rend(); cRIter++)
    {
        ch2[j] = *cRIter;
        j++;
    }
    printf("%s\n%s\n", ch1, ch2);
    return 0;
}

(四)使用双向链表list,正向迭代器

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
using namespace std;
#include <list>
#include <iterator>

int main()
{
    char ch1[10] = "abcde", ch2[10] = {0};
    int n=0, i=0, j=0;
    n = strlen(ch1);
    list<char> cList(ch1, ch1+n);
    list<char>::iterator cIter = cList.end();
    cIter--;
    for(cIter; cIter!=cList.begin();cIter--)
    {
        ch2[j] = *cIter;
        j++;
    }
    if(cIter==cList.begin())
    {
        ch2[j] = *cIter;
    }
    printf("%s\n%s\n", ch1, ch2);
    return 0;
}

以上所有输出结果为:

(五)使用双向链表list,iterator正向迭代器复制的例子;

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
using namespace std;
#include <list>
#include <iterator>

int main()
{
    char ch1[10] = "abcde", ch2[10] = {0};
    int n=0, i=0, j=0;
    n = strlen(ch1);
    list<char> cList(ch1, ch1+n);
    list<char>::iterator cIter;

    for(cIter=cList.begin(); cIter!=cList.end(); cIter++)
    {
        ch2[j] = *cIter;
        j++;
    }
    printf("%s\n%s\n", ch1, ch2);
    return 0;
}

输出结果为:

时间: 2024-10-14 17:49:39

字符串倒序输出的相关文章

Java实现字符串倒序输出的几种方法

1. 最容易想到的估计就是利用String类的toCharArray(),再倒序输出数组的方法了. import javax.swing.JOptionPane; public class ReverseString { public static void main (String args[]){ String originalString; String resultString = ""; originalString = JOptionPane.showInputDialog

Java基础知识强化08:将字符串倒序输出(包括空格)的几种方法

1.最容易想到的估计就是利用String类的toCharArray(),再倒序输出数组的方法了: 1 package himi.hebao05; 2 3 public class TestDemo02 { 4 public static void main(String[] args) { 5 int i = 0; 6 String text = "hebao I love you!"; 7 String result = " "; 8 char[] charArr

C++如何输入单行和多行带空格的字符串并将字符串倒序输出

首先,我们知道在C++中,空格或者回车被认为是字符串的分割标志,使用cin输入string类的字符串时遇到会自动停止接收输入 例如,当如下程序时: 1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 string s; 6 cin>>s; 7 8 for(int j = s.size()-1 ; j>=0 ; j--){ 9 cout<<s.at(j); 10 } 11 retu

将整形整数转化为数组的形式分别依次存到数组当中,然后倒叙输出、把原本字符串倒序输出。截取字符串等等

// //  main.m //  ClassWork.m // //  Created by FuHeXiang on 16/1/9. //  Copyright (c) 2016年 FuHeXiang. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSLog(@"第1题——————————

字符串的倒序输出

package cn.itsource.homeworkday14; /** *  字符串的倒序输出: * 把字符串翻转过来输出 原字符串“avdkfasjks”输出效果”skjsafkdva”; */ //1.通过创建StringBuffer调用它的reverse()方法字符串倒序输出(比较简洁) public class Seven {public static void main(String[] args) { String str6 = "abcdefgh";    Stri

java习题:倒序输出一行字符串

倒序输出一行字符串: public static void main(String[] args) { System.out.println("请输入一行字符串(按Enter执行):"); Scanner input = new Scanner(System.in); String str = input.next(); daoxu(str); } /** * 将字符串倒序 * @param str */ public static void daoxu(String str) { S

C#字符串的倒序输出

介绍 在本文中,我将演示如何将字符串的单词倒序输出.在这里我不是要将“John” 这样的字符串倒序为成“nhoJ”,.这是不一样的,因为它完全倒序了整个字符串.而以下代码将教你如何将“你 好 我是 缇娜”倒序输出为“缇娜 是 我 好 你”.所以,字符串的最后一个词成了第一个词,而第一个词成了最后一个词.当然你也可以说,以下代码是从最后一个到第一个段落字符串的读取. 对此我使用了两种方法.第一种方法仅仅采用拆分功能.根据空格拆分字符串,然后将拆分结果存放在一个string类型的数组里面,将数组倒序

C语言之基本算法40—字符串删除元音字母倒序输出

//字符串,数组 /* ================================================================== 题目: 输入一行字符,将辅音字母按反序输出(去掉元音字母),并存放在另一字符串! ================================================================== */ #include<stdio.h> #include<string.h> #define N 256 vo

php中怎样自己定义,倒序输出一个字符串

利用strrev--这个函数 strrev — 反转字符串 $str="ABCDEFGHIJK"; $new_str=strrev($str); echo $new_str; //输出结果KJIHGFEDCBA: 第二种方法,自定义 $str="qwertyuiop"; my_rev($str); function my_rev($str) { $len = strlen($str);//先计算长度 $new_str = "";//定义一个空的字