簡體   English   中英

這兩個變量為什么不相等

[英]Why aren't these two variables equal to each other

#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。 它會給我錯誤。

在您的while語句之后,您有一個多余的分號來結束條件。 然后,以下代碼塊將無條件運行。

實際的char數組使用\\0空字符來保留char *字符串的末尾, strlen()的長度計數中不包含該空字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM