【问题标题】:Declaring two variable in for loop for reversing the string? In c++ [duplicate]在 for 循环中声明两个变量以反转字符串?在 C++ [重复]
【发布时间】:2016-06-14 09:51:38
【问题描述】:
  for(int i=0,int y=19;i<=19,y>=0;i++,y--)
  {
      char k[y]=char x[i];
  }

我已经为kx 声明了char[20],初始化了x,现在我正在尝试反转字符串。 它在inty was not declared in scope 之前显示error expected ;

【问题讨论】:

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


    【解决方案1】:

    您可以通过将字符串声明为数组来反转字符串,然后声明一个等于最后一个字母位置的整数(第一个字母 = 0)。

    int letter [6] = {l, e, t, t, e, r};
    int x = 5;
    
    for ( int x = 5; x>= 0; x--) {
    cout<<letter[x];
    }
    

    【讨论】:

    • 错得太离谱了……
    • 你能解释一下错误吗
    • 你的答案是错误的。 for (int i=0,j=100; i &lt; 100; i++, j--) 完全正确。分号分隔for 构造的三个部分,逗号分隔每个部分中的多个操作。阅读链接问题的答案
    • 另外,Int y = 19; 行不正确(Intint),并且不相关,因为您随后尝试在循环中定义 y
    • 最后,您从问题char k[y]=char x[i] 中复制的那行简直毫无意义。
    【解决方案2】:

    这段代码只反转一个字符串

    for(int i=0;i<length/2;i++)
    {
        char temp= k[i];
    ´   k[i] = k[length-1-i];
        k[length-1-i] = temp;
    }
    

    【讨论】:

    • 不,它没有。尝试反转字符串“ab”(长度=2),看看会发生什么。
    • @Roddy 如果我们插入“ab”,for 循环将执行一次。 temp 得到值“a”,k[i] 得到值“b”,k[length-1-i] 所以 k[2-1-0] 所以 k[1] 得到值“a”所以在结束有“ba”
    猜你喜欢
    • 1970-01-01
    • 2021-08-29
    • 2018-04-25
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多