首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CString回文测试

CString回文测试
EN

Stack Overflow用户
提问于 2019-11-01 05:00:31
回答 2查看 224关注 0票数 0

我的目标是通过命令行输入,然后我的代码接受输入,复制并在我的reverse函数中反转输入。然后返回反转的回文作为rev.

我试着在我的strcmp(x,y == 0)函数内部调用我的反向函数,这给我带来了问题,我继续尝试初始化第二个char数组,然后将反向(回文)复制到它上,然后进行比较。

我不知道下一步该怎么走。任何帮助都将不胜感激。

代码语言:javascript
复制
   #include <iostream>
   #include <cstring>


using namespace std;

string reverse(string palindrome) {
    string rev;
    for (int i = 0; i < palindrome.length(); i++)
    rev += palindrome[palindrome.length() - 1 - i];

    return rev;
}//string reverse closing





int main(int argc, char *argv[]) {
    char palindrome[1000] = "";     //empty string
    for (int i = 1; i < argc; i++) {
        strcat_s(palindrome, 1000, argv[i]);
    }


    char rev[1000] = "";
    strcpy(rev, reverse(palindrome));

    if (strcmp(palindrome, rev == 0)){
        cout << "The input was a valid palindrome";
    }
    else if (strcmp(palindrome, rev != 0)) {
        cout << "This input was not a valid palindrome";
    }

}// Main closing bracket
EN

回答 2

Stack Overflow用户

发布于 2019-11-01 06:18:25

只需使用==在原始std::string和使用反向迭代器初始化的初始化an之间进行比较可能容易得多,例如

代码语言:javascript
复制
#include <iostream>
#include <string>

int main (int argc, char **argv) {

    for (int i = 1; i < argc; i++) {
        std::string s(argv[i]);

        if (s == std::string (s.rbegin(), s.rend()))
            std::cout << s << " is a palindrome\n";
        else
            std::cout << s << " is NOT a palindrome\n";
    }
}

这打破了实际的反转,并向下比较为一个简单的:

代码语言:javascript
复制
if (s == std::string (s.rbegin(), s.rend()))

请参阅:std::basic_string::rbeginstd::basic_string::rend

示例使用/输出

代码语言:javascript
复制
$ ./bin/palindromeargv "anna" "bananna" "amanaplanacanalpanama"
anna is a palindrome
bananna is NOT a palindrome
amanaplanacanalpanama is a palindrome
票数 1
EN

Stack Overflow用户

发布于 2019-11-01 05:07:51

按索引检查索引不是更好吗?

代码语言:javascript
复制
while(true){
if(palindrome[i]!=palindrome[j];
return false;
}

ofc i从头开始,j从长开始。如果数字是奇数,它应该自己检查

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58651100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档