C++ 如何在c++;?

C++ 如何在c++;?,c++,arrays,string,cstring,C++,Arrays,String,Cstring,我们的老师想让我们写一个程序来反转字符数组的顺序。就像用户输入“hello”一样,程序将输出“olleh” 这是我们得到的函数: void reverse_string(char coolstring[11], char newcoolstring[11]) { int count = 0, count2 = 0; while(coolstring[count] != '\0') { count++; } count -= 1;

我们的老师想让我们写一个程序来反转字符数组的顺序。就像用户输入“hello”一样,程序将输出“olleh”

这是我们得到的函数:

void reverse_string(char coolstring[11], char newcoolstring[11])
{
    int count = 0, count2 = 0;

    while(coolstring[count] != '\0')
    {
        count++;
    }
    count -= 1;

    cout << coolstring[count];
    system("pause");

    while(coolstring[count] != 0)
    {
        newcoolstring[count] = coolstring[count2];
        count -= 1;
        count2 += 1;
    }   
}
void reverse_字符串(char coolstring[11],char newcoolstring[11])
{
int count=0,count2=0;
while(coolstring[count]!='\0')
{
计数++;
}
计数-=1;

我想我们需要更具体地描述它是如何不起作用的。你尝试过哪些输入,以及你得到了什么样的错误行为


仅从您的示例来看,可能错误在于您只能显示原始字符串的最后一个字母。这是因为在
系统(“暂停”)行之前有一个cout语句来执行此操作
。您是否在其他地方显示输出字符串?

这是您应该自己解决的问题,但这里有一些东西可以为您指明正确的方向:

假设
coolstring
如下所示:

 0  |  1  |  2  |  3  |  4  |  5
'h' | 'e' | 'l' | 'l' | 'o' | '\0'
此循环将检索此字符串的大小:

while(coolstring[count] != '\0')
    count++;
但是,由于您希望使用
count
作为索引,并且在这种情况下
count
等于5,因此您不希望复制终止(
'\0'
)字符,因此您应该首先从
coolstring[4]
开始(这是输出
coolstring[count]的点)
之后
计数
之后减少,而
循环…使您意识到它是
'o'

现在看看这段代码:

while(coolstring[count] != '\0')
{
    newcoolstring[count] = coolstring[count2];
    count--;
    count2++;
} 
问问自己这些问题:

  • 当我们从
    'o'
    和减量
    计数开始时,
    coolstring[count]
    何时将等于
    '\0'
  • newcoolstring
    将如何处理此循环

  • “它不起作用”不是对问题的有用描述。这是你的老师给你的代码,你的代码在哪里?你尝试了什么?她故意给了你不起作用的代码。你不知道怎么解决它吗?