【发布时间】:2023-03-07 10:17:01
【问题描述】:
我的程序无法编译。它一直在说: [错误] 从 'char' 到 'char*' 的无效转换 它应该是一个程序,可以识别两个字符串是否是彼此的字谜。 我使用了一种排序方法,但我不知道它是否有效。 希望你们能帮帮我。 P.S 我只能使用字符串和数组。
int main ()
{
char sString_1[100], sString2[100], store[50];
int j, i;
printf("Enter String 1: ");
gets(sString_1);
printf("\nEnter String 2: ");
gets(sString2);
if (strlen(sString_1) != strlen(sString2))
printf("%s and %s are not anagrams", sString_1, sString2);
else
{
for(i = 0; i < strlen(sString_1); ++i)
{
for (j=i+1 ; j <= strlen(sString_1); ++j)
{
if (strcmp(sString_1[i], sString2[j]) > 0)
{
strcpy(store,sString_1[i]);
strcpy(sString_1[i],sString_1[j]);
strcpy(sString_1[j],store);
}
}
}
for(i = 0; i < strlen(sString2); i++)
{
for (j= i + 1; j <= strlen(sString2); j++)
{
if (strcmp(sString2[i], sString2[j]) >0)
{
strcpy(store,sString2[i]);
strcpy(sString2[i],sString2[j]);
strcpy(sString2[j],store);
}
}
}
if (strcmp(sString_1, sString2) == 0)
printf("ANAGRAM");
else
printf("NOT");
}
}
【问题讨论】:
-
在哪一行代码上?请全部删除并保留minimal reproducible example
-
整个程序是用 C 函数编写的。如果您正在使用 C++,请尝试使用内置的字符串类 - 根据我的经验,它们让生活更轻松。
-
看看
strcpy(store,sString_1[i]);。你用的是哪两个东西,strcpy的参数类型是什么? -
c++ 的东西在哪里?