gpt4 book ai didi

c - 交换字符时出现运行时错误

转载 作者:行者123 更新时间:2023-11-30 21:12:18 24 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void swap(char* c1,char* c2)
{
char temp=*c1;
*c1=*c2;
*c2=temp;
}

void permutate( char str[], int index)
{
int i = 0;
static lastChar = 0;

if( index == strlen(str) )
{ // We have a permutation so print it
printf("%s\n",str);
return;
}

for( i = index; i < strlen(str); i++ )
{
if( lastChar == str[i] ) {
continue;
}
else {
lastChar = str[i];
}
swap( str+index, str+i ); // It doesn't matter how you swap.
permutate( str, index + 1 );
swap( str+index, str+i );
}
}

int main(int argc,char** argv)
{
permutate("abcdefgh",0);
return 0;
}

`

我在运行该程序时遇到段错误。当我单独运行它时,交换功能工作正常。

最佳答案

看看这个函数调用:

permutate("abcdefgh",0);

您正在尝试修改字符串文字。这些是只读的,它是段错误的根源。

关于c - 交换字符时出现运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7906447/

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