gpt4 book ai didi

c - 在 C 中将字符与表指针交换

转载 作者:行者123 更新时间:2023-11-30 15:53:03 25 4
gpt4 key购买 nike

我正在尝试用两个表指针交换两个字符。有人可以向我解释我的代码有什么问题吗?终端显示 char** is Expected 但我不知道该怎么做,所以我想我并不真正理解指针如何用于表。

void echangeM2(char **ptab1, char **ptab2){

char *tmp = *ptab1;
*ptab1 = *ptab2;
*ptab2 = *tmp;
printf("%s\t %s",*ptab1,*ptab2);

return;
}

int main(void) {
char tab1[25];
char tab2[25];
char *adtab1;
char *adtab2;
*adtab1 = &tab1;
*adtab2=&tab2;
printf("type two words");
scanf("%s %s",tab1,tab2);
echangeM2(adtab1,adtab2);
return 0;
}

最佳答案

以下代码应该适合您:

#include <stdio.h>

void exchangeM2(char* *ptab1, char* *ptab2) { // accepts pointer to char*
char* tmp = *ptab1; // ptab1's "pointed to" is assigned to tmp
*ptab1 = *ptab2; // move ptab2's "pointed to" to ptab1
*ptab2 = tmp; // now move tmp to ptab2
printf("%s\t %s",*ptab1,*ptab2);
}

int main(void) {
char tab1[25];
char tab2[25];
char* adtab1;
char* adtab2;
adtab1 = tab1; // array name itself can be used as pointer
adtab2 = tab2;
printf("type two words");
scanf("%s %s",tab1,tab2);
exchangeM2(&adtab1, &adtab2); // pass the address of the pointers to the function
}

关于c - 在 C 中将字符与表指针交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13902939/

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