【发布时间】:2014-07-15 16:08:30
【问题描述】:
我正在检查两个字符串是否是彼此的排列。我正在使用以下代码:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
void sort(char *str)
{
char temp;
for(int i=0;i<strlen(str);i++)
{
if(str[i]>str[i+1])
{
temp=str[i];
str[i]=str[i+1];
str[i+1]=temp;
}
}
}
int main()
{
char string1[10],string2[10];
int val;
cout<<"Enter first string";
gets(string1);
cout<<"Enter second string";
gets(string2);
val = strcmp(sort(string1),sort(string2));
if(val==0)
{
cout<<"Same strings"<<endl;
}
else
{
cout<<"Different Strings"<<endl;
}
return 0;
}
但我在 strcmp 行收到“无效使用 void 表达式错误”。我该如何解决 ? 谢谢
【问题讨论】:
-
你的排序函数是
void:void sort(char *str)。您不能将其与strcmp()一起使用。 -
永远不要使用
gets。由于完全无视安全性,它已从 C 和 C++ 中删除。