C 我的字谜程序能运行吗?如果是,为什么不编译?

C 我的字谜程序能运行吗?如果是,为什么不编译?,c,string,anagram,C,String,Anagram,我的程序不编译。它一直在说: [错误]从“char”到“char*”的转换无效 它应该是一个程序,用于识别两个字符串是否是彼此的字谜。 我使用了一种排序方法,但我不知道它是否有效。 希望你们能帮我。 我只能使用字符串和数组 int main () { char sString_1[100], sString2[100], store[50]; int j, i; printf("Enter String 1: "); gets(sString_1);

我的程序不编译。它一直在说: [错误]从“char”到“char*”的转换无效 它应该是一个程序,用于识别两个字符串是否是彼此的字谜。 我使用了一种排序方法,但我不知道它是否有效。 希望你们能帮我。 我只能使用字符串和数组

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");
    }
}
int main()
{
char sString_1[100],sString2[100],store[50];
int j,i;
printf(“输入字符串1:”);
获取(sString_1);
printf(“\n输入字符串2:”);
获取(sString2);
if(strlen(sString_1)!=strlen(sString2))
printf(“%s和%s不是字谜”,sString_1,sString2);
其他的
{
对于(i=0;i
strcmp(字符串1[i],字符串2[j])


strcmp的参数应该是
const char*
类型,但您只传递单个字符。

通常,当您使用
p[i]
时,您将指针(或数组)
p
更改为它所指向的内容,例如字符。 这就像写
*(p+i)
。要获取该字符的地址,您可以编写
p+i
&p[i]

示例:要修复错误,您必须更改

strcmp(sString_1[i], sString2[j])
进入


你想这样做吗

    char sString_1[100], sString2[100], store;            // store is 1char
//=======omit==========
    else
    {
        for(i = 0; i < strlen(sString_1); ++i)
        {
            for (j=i+1 ; j < strlen(sString_1); ++j)         // "<="→"<"
            {
                if (sString_1[i] > sString2[j])              // char
                {
                    store = sString_1[i];                    // char
                    sString_1[i] = sString_1[j];
                    sString_1[j] = store;
                }
            }
        }
        for(i = 0; i < strlen(sString2); i++)
        {
            for (j= i + 1; j < strlen(sString2); j++)         // "<="→"<"
            {
                if (sString2[i] > sString2[j])                // char
                {
                    store = sString2[i];                      // char
                    sString2[i] = sString2[j];
                    sString2[j] = store;
                }
            }
        }
//=======omit==========
char sString_1[100],sString2[100],store;//商店是1卡
//=========省略==========
其他的
{
对于(i=0;i对于(j= i+1;jstryLeN(strigs1);++j)/ /“在哪一行代码上?请删除所有并保持整个程序用C函数编写。如果您使用C++,请尝试使用内置的字符串类-它们使我的生活更容易。在我的经验中,看<代码> StrcPy(Sturn,String Guang[1]))什么是你使用的两个东西,什么是PARTME类型?什么是C++?ScCyPy <代码>?C++的东西在哪里?还有<代码> StrucP。谢谢。但是现在我遇到了这条线的问题:如果(StrucMP(SSTRIGEG1,SSTRIG2)=0)PrTrF(“ANGRAM”);否则PrtTf(“不”);看看你的两个strcmp:第一个比较1和2,第二个比较2和2。但我不理解你的字谜算法。我要做的是:对两个字符串进行排序。例如,“dog”变为“dgo”,“god”也变为“dgo”,这样你就可以在排序后对它们进行strcmp。
    char sString_1[100], sString2[100], store;            // store is 1char
//=======omit==========
    else
    {
        for(i = 0; i < strlen(sString_1); ++i)
        {
            for (j=i+1 ; j < strlen(sString_1); ++j)         // "<="→"<"
            {
                if (sString_1[i] > sString2[j])              // char
                {
                    store = sString_1[i];                    // char
                    sString_1[i] = sString_1[j];
                    sString_1[j] = store;
                }
            }
        }
        for(i = 0; i < strlen(sString2); i++)
        {
            for (j= i + 1; j < strlen(sString2); j++)         // "<="→"<"
            {
                if (sString2[i] > sString2[j])                // char
                {
                    store = sString2[i];                      // char
                    sString2[i] = sString2[j];
                    sString2[j] = store;
                }
            }
        }
//=======omit==========