gpt4 book ai didi

c++ - 初学者 C++ 数组和循环?

转载 作者:行者123 更新时间:2023-11-30 04:02:42 25 4
gpt4 key购买 nike

试图颠倒字符输入的顺序。我真的快到了,但没有雪茄。

#include <iostream>
using namespace std;

const int MAX = 10;

int main()
{
char a[MAX], next;
int index = 0;

cout << "Please enter in up to 10 letters ending with a period: " << endl;
cin >> next;

while((next != '.') && (index < 10))
{
a[index] = next;
index++;
cin >> next;
//cout << " " << next << endl;
}

int numbers_used = index;
for(index = 0; index <= numbers_used; index++)
{
a[index] = a[numbers_used -1];
numbers_used--;
cout << a[index] << " " << endl;
}
}

除了最后一个开关,我得到了所有东西,即使我的代码不那么干净,我也看不出哪里出错了。

本书代码为:

for(index = numbers_used -1; index >= 0; index--)
cout<<a[index];
cout<< endl;

为什么是 index = numbers_used - 1 ??由于 numbers_used 被设置为 index 并且 index 被初始化为 0 而不是 1 我不想运行循环“numbers_used”的次数吗?我错过了什么?

最佳答案

试试这个:

char* flip(char* str, int len) {
for(int x=0; x<(len/2); x++) {
swap(str[x], str[len-x-1]);
}
return str;
}

截至目前,到达字符串中间后,您将覆盖需要复制到后半部分的值。使用像“FooBarBiz”这样的字符串,您的代码将在迭代过程中生成以下内容(我在其中放置了空格以尝试使事情更清楚):

1:  FooBarBiz
2: z ooBarBiz
3: zi oBarBiz
4: ziB BarBiz
5: ziBr arBiz
6: ziBra rBiz
7: ziBrar Biz
...

然而,我发布的代码使用 c++ swap 函数来交换补充值,这样就不会丢失值(我们不会进行任何覆盖),而且您不需要将整个字符串存储在占位符变量中。这有意义吗?

关于c++ - 初学者 C++ 数组和循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24916396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com