Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ strcmp返回0始终打开将字符串与反向进行比较_C++_Strcmp - Fatal编程技术网

C++ strcmp返回0始终打开将字符串与反向进行比较

C++ strcmp返回0始终打开将字符串与反向进行比较,c++,strcmp,C++,Strcmp,我让用户输入一个字符串,然后比较它的反面,但结果总是0,为什么 #include<iostream> #include<string.h> using namespace std; int main() { char *str=new char[100]; cout<<"enter a string"; cin.getline(str,100); int len=strlen(str); char *rev=strre

我让用户输入一个字符串,然后比较它的反面,但结果总是0,为什么

#include<iostream>
#include<string.h>
using namespace std;

int main()
{
    char *str=new char[100];
    cout<<"enter a string";
    cin.getline(str,100);
    int len=strlen(str);
    char *rev=strrev(str);
    int diff=strcmp(str,rev);
    cout<<diff;
    return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
char*str=新字符[100];

cout
strrev
在适当的位置反转字符串。因此它实际上修改了
str
指向的字符数组。如果要执行
printf(“%s”,str);
您会看到它已反转

您应该复制该字符串并反转:

int main() {
    char *str = new char[100];
    char *rev = new char[100]; // You need memory for the reversed string

    cout << "enter a string";
    cin.getline(str, 100);

    strcpy(rev, str); // Make a copy of `str` called `rev`
    strrev(rev);      // Reverse it.

    int diff = strcmp(str, rev);

    cout << diff;
    return 0;
}
intmain(){
char*str=新字符[100];
char*rev=new char[100];//反转的字符串需要内存

cout
strrev
在适当的位置反转字符串。因此它实际上修改了
str
指向的字符数组。如果要执行
printf(“%s”,str);
您会看到它已反转

您应该复制该字符串并反转:

int main() {
    char *str = new char[100];
    char *rev = new char[100]; // You need memory for the reversed string

    cout << "enter a string";
    cin.getline(str, 100);

    strcpy(rev, str); // Make a copy of `str` called `rev`
    strrev(rev);      // Reverse it.

    int diff = strcmp(str, rev);

    cout << diff;
    return 0;
}
intmain(){
char*str=新字符[100];
char*rev=new char[100];//反转的字符串需要内存

cout
strrev
在哪里声明?如果
strrev()
修改其参数的内容并返回指向其参数的指针,则
rev
str
都指向同一缓冲区。
strrev()
是Microsoft stuff,它不可移植。不是真正的Microsoft stuff,我记得在Borland和Watcom中也使用过它。
strrev
声明在哪里?如果
strrev()
修改其参数的内容并返回指向其参数的指针,则
rev
str
都指向同一缓冲区。
strrev
是微软的东西,不可移植。不是真正的微软的东西,我记得在Borland和Watcom中也使用过。