【问题标题】:Reverse an array of chars and simultaneously store into separate array with for loops using c++ [duplicate]使用c ++反转字符数组并同时使用for循环存储到单独的数组中[重复]
【发布时间】:2015-01-02 13:54:38
【问题描述】:

块引用

注意:我不想使用“iostream”以外的内置库或函数 “字符串”。

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];
}

块引用

以下是手动完成的;它可以工作,但是你会得到用于填充数组其余部分的随机字符

{
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;
}

【问题讨论】:

  • 你应该只写一个for而不是2。
  • 您应该使用新信息更新您之前的问题,或者确保这显然是一个不同的问题。
  • 我可以删除我的一个问题吗?

标签: c++ arrays loops for-loop reverse


【解决方案1】:

哎呀!第一个版本不好,因为您将两个循环放入结果将不是您所期望的:rev 的每个字符将连续接收来自 wrd 的所有字符并以 wrd[0] 结尾!

第一个版本应该是(带有一个单循环):

s=strlen(wrd) - 1;

for(y=0;y<=s;y++)
{
    rev[y]=wrd[s - y];
}
rev[s + 1] = '\0'; /* don't forget to null terminate rev */

对于第二个版本,您只需添加

drw[s + 1] = '\0';

cout 之前正确结束反转的单词。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-20
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 2019-10-18
    • 1970-01-01
    相关资源
    最近更新 更多