gpt4 book ai didi

c - 将排列后的字符串存储到数组中

转载 作者:行者123 更新时间:2023-11-30 16:46:31 26 4
gpt4 key购买 nike

我一直在尝试将以下函数中的排列后的字符串存储到数组中。我收到以下错误,

 Error  2   error C2106: '=' : left operand must be l-value

我希望能够存储所有排列后的字符串并一一检索它们。

#include<stdio.h>
#include<string.h>
const char cstr[100][100];
char* permute(const char *a, int i, int n)
{
int j;
if (i == n)
{
cstr [k] =a;
k++;

}

else
{
for (j = i; j <= n; j++)
{
swap((a + i), (a + j));
permute(a, i + 1, n);
swap((a + i), (a + j)); //backtrack
}
}
return cstr;
}
int main ()
{
char str1 [100];
printf ( "enter a string\n" );
scanf( "%d" , &str );
permute ( str1 , 0 , n-1 );
//can't decide what parameter to consider to terminate the loop
printf( "%s" , cstr[i] ); /*then print the strings returned from permute
function*/
return 0;
}

最佳答案

cstr[k] = a; 是您的错误所在。

cstr[k] 是 char[100],但 a 是 char*。它们本质上是不同的,不能相互分配。您想要执行 strcpy(cstr[k], a) (或 memcpy)。

cstrk[k] 指的是大小为 100 的字符数组,在 C 中不能直接对数组进行赋值,因此它不是左值表达式。

关于c - 将排列后的字符串存储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43702800/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com