为什么这两个变量不相等

时间:2014-04-20 18:54:05

标签: c++

#include <iostream>
#include <string>
#include <cstring>
using namespace std;

string reverseString(char* str, int sizeArray)
{
char* first = &str[0];
char* last = &str[sizeArray - 1];
while(first < last)
{
    char temp = *first;
    *first = *last;
    *last = temp;
    first++;
    last--;
}
return str;

}

int main()
{
int size_of_array;
cout << "Max size of input string: ";
cin >> size_of_array;

char* someArray = new char[size_of_array];

cout << "Enter in string: ";
cin >> someArray;

while(strlen(someArray)!=size_of_array);
{
    cout << "Length of string doesn't equal size of array" << endl;
    cout << "Enter in string: ";
    cin >> someArray;
}


cout << reverseString(someArray, size_of_array);

}

当我讨论strlen(someArray)和size_of_array时,它们都是相同的数字,但是当我运行它时,我在while循环中得到错误,说它们彼此不相等。

示例:我将为size_of_array输入5,然后输入字符串Kevin。它会给我错误。

2 个答案:

答案 0 :(得分:1)

你的while语句后面有一个额外的分号,结束了这个条件。然后无条件地运行以下代码块。

答案 1 :(得分:0)

实际的char数组使用\0空字符来放置char *字符串的结尾,strlen()在其长度计数中不包含此空字符。

相关问题