gpt4 book ai didi

c - 交换两个字符串指针

转载 作者:太空宇宙 更新时间:2023-11-04 00:11:25 24 4
gpt4 key购买 nike

我必须在 C 中使用 char[] 并且我想在它们之间交换,仅通过交换指针到数组而不是一次一个字符,所以我写了这段代码:

#include <stdio.h>
void fastSwap (char **i, char **d)
{
char *t = *d;
*d = *i;
*i = t;
}
int main ()
{
char num1[] = "012345678910";
char num2[] = "abcdefghujk";
fastSwap ((char**)&num1,(char**)&num2);
printf ("%s\n",num1);
printf ("%s\n",num2);
return 0;
}

我得到这个输出(注意最后 4 个字符)

abcdefgh891001234567ujk

当我期望的时候:

abcdefghujk012345678910

注意:我正在使用 64 位 Linux 系统。

最佳答案

您不能修改 num1num2 的地址,如果您的测试是:

int main ()
{
char num1[] = "012345678910";
char num2[] = "abcdefghujk";
char *test1 = num1;
char *test2 = num2;
fastSwap (&test1,&test2);
printf ("%s\n",test1);
printf ("%s\n",test2);
return 0;
}

关于c - 交换两个字符串指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3816233/

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