试图扭转的同时店呢一个C ++阵列和成一个新的数组 [英] Trying to reverse a C++ array and at the same time store it into a new array

查看:106
本文介绍了试图扭转的同时店呢一个C ++阵列和成一个新的数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图扭转数组并同时将其与存储在一个新的数组循环。我曾与循环有所手动,但没有实现它。下面的第一个code使用循环,后者手动或从字面上。

 字符WRD [26],转[26];INT Y,I,S;S = strlen的(WRD)-1;对于(Y = 0; Y< S; Y ++)为(I = S; I> = 0;我 - )
{
    转[Y] = WRD [I]
}

下面是相同的手动完成;它的工作原理,但你习惯随机字符填充阵列的其余部分:

  {
    焦炭DRW [26],wrd2 [26];
    INT S,I = 0;    S = strlen的(wrd2)-1;    DRW [0] = wrd2 [S]。
    DRW [1] = wrd2 [S-1];
    DRW [2] = wrd2 [S-2];
    DRW [3] = wrd2 [S-3];
    DRW [4] = wrd2 [S-4];
    DRW [5] = wrd2 [S-5];
    DRW [6] = wrd2 [S-6];
    DRW [7] = wrd2 [S-7];
    DRW [8] = wrd2 [S-8];
    DRW [9] = wrd2 [S-9];
    DRW [10] = wrd2 [S-10];
    DRW [11] = wrd2 [S-11];
    DRW [12] = wrd2 [S-12];
    DRW [13] = wrd2 [S-13];
    DRW [14] = wrd2 [S-14];
    DRW [15] = wrd2 [S-15];
    DRW [16] = wrd2 [S-16];
    DRW [17] = wrd2 [S-17];
    DRW [18] = wrd2 [S-18];
    DRW [19] = wrd2 [S-19];
    DRW [20] = wrd2 [S-20];
    DRW [21] = wrd2 [S-21];
    DRW [22] = wrd2 [S-22];
    DRW [23] = wrd2 [S-23];
    DRW [24] = wrd2 [S-24];
    DRW [25] = wrd2 [S-25];    COUT<< DRW;
}


解决方案

您有两个嵌套循环,而且他们没有做什么,你认为他们在做什么。你只需要一个:

  INT Y,S;S = strlen的(WRD) -  1;对于(Y = 0; Y< = S; Y ++)
{
    转[Y] = WRD [S - Y];
}

和不要忘了终止:

 转[S + 1] = 0;

I'm trying to reverse an array and simultaneously store it in a new array with for loops. I have achieved it somewhat manually but not with loops. The first code below uses loops, the latter manually or literally.

char wrd[26],rev[26];

int y,i,s;

s=strlen(wrd)-1;

for(y=0;y<s;y++) for(i=s;i>=0;i--)
{
    rev[y]=wrd[i];
}

Below is the same done manually; it works, but you get random chars used to fill the rest of the array:

{
    char drw[26], wrd2[26];
    int s,i=0;

    s=strlen(wrd2)-1;

    drw[0]=wrd2[s];
    drw[1]=wrd2[s-1];
    drw[2]=wrd2[s-2];
    drw[3]=wrd2[s-3];
    drw[4]=wrd2[s-4];
    drw[5]=wrd2[s-5];
    drw[6]=wrd2[s-6];
    drw[7]=wrd2[s-7];
    drw[8]=wrd2[s-8];
    drw[9]=wrd2[s-9];
    drw[10]=wrd2[s-10];
    drw[11]=wrd2[s-11];
    drw[12]=wrd2[s-12];
    drw[13]=wrd2[s-13];
    drw[14]=wrd2[s-14];
    drw[15]=wrd2[s-15];
    drw[16]=wrd2[s-16];
    drw[17]=wrd2[s-17];
    drw[18]=wrd2[s-18];
    drw[19]=wrd2[s-19];
    drw[20]=wrd2[s-20];
    drw[21]=wrd2[s-21];
    drw[22]=wrd2[s-22];
    drw[23]=wrd2[s-23];
    drw[24]=wrd2[s-24];
    drw[25]=wrd2[s-25];

    cout << drw;
}

解决方案

You have two nested loops, and they are not doing what you think they are doing. You only need one:

int y, s;

s = strlen(wrd) - 1;

for (y = 0; y<=s; y++)
{
    rev[y] = wrd[s - y];
}

and don't forget to terminate:

rev[s + 1] = 0;

这篇关于试图扭转的同时店呢一个C ++阵列和成一个新的数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆