永发信息网

C语言字符交换问题

答案:1  悬赏:10  手机版
解决时间 2021-02-08 02:57
下面是求字符串的全排列,遇到了一个问题:在字符交换的时候, *start = *end;无法赋值, 是因为无法修改常量字符串吗? 我试了下重新建一个数组, 用数组下标是可以修改的,比如swap(&a[0], &a[1]), 这个该怎么理解,谢谢!
void swap(char *start, char *end)
{
char temp;
temp = *start;
*start = *end;
*end = temp;
}

void permutation(char *string, char *start)
{

if (NULL == string || NULL == start)
{
return;
}

printf("string: %s, start = %c\n", string, *start);

if (*start == '\0')
{
printf("%s ", string);
}
else
{
for (char *p = start; *p != '\0'; p++)
{
printf("*p=%c, *start=%c", *p, *start);
swap(p, start);

printf("current p: %c, start = %c", *p, *start);

permutation(string, start+1);

swap(p, start);
}
}

}

int main(int argc, char const *argv[])
{
permutation("abc", "abc");
return 0;
}
最佳答案
char temp;
temp=*p2;
*p2=*p1;
*p1=temp;

这一段,表示只交换首字母,应使用 strcpy()函数进行复制操作,,,
希望能解决您的问题。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
探险网吧地址好找么,我有些事要过去
机票里行程单GRPCEN是什么意思
学仕眼镜地址有知道的么?有点事想过去
《蝉 虞世南》蝉有怎样品性?急用
手游神武选好人进不去…
健身对肝病有好处吗?
A8休闲网吧地址在什么地方,想过去办事
泵站清淤(人工和机械都包括),套用哪些定额
布艺床和皮床哪个好 有用吗
“拼箱/整箱”货物交接方式对应的英文缩写是
新建网吧地址有知道的么?有点事想过去
凌峰网吧地址好找么,我有些事要过去
夜里我好想你说说
【人境庐】”人境庐”出自那句诗句
空转锁心带两把装修钥匙插入新钥匙就没用了什
推荐资讯
百年人寿保险股份有限公司江油支公司怎么去啊
州鑫宾馆在什么地方啊,我要过去处理事情
2012开学第一课观后感:发现你身边的美 明天
凌武琴行品牌形象店在什么地方啊,我要过去处
windows 7附件中“便笺”程序不支持的输入方
我和男朋友说我是你的小暖炉,我男朋友说我是
厦门莲花罗汉山度假山庄地址在哪,我要去那里
石臼国土资源所地址好找么,我有些事要过去
【睨之久而不去的而】卖油翁“笑而遣之”与“
安鑫驾校(乌兰察布集宁)怎么去啊,我要去那办
萨摩耶爱吃什么狗粮
客之驿青年旅舍地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?