c - 使用 strcpy 交换字符串

标签 c string pointers

我试图通过仅使用指针表示法(无数组)来交换两个字符串,其中 一个看起来像这样的函数

void str_switch(char *a, char *b)

无论 b 和 a 的大小如何,交换都应该有效,这是未知的。

我的想法是这样的:

void str_switch(char *a, char *b) {
const char *temp = a;
strcpy(b, temp);
}

然而,在此之后,我不确定如何将 b 复制到 a,因为 b 发生了变化,我尝试声明其他常量指针,但是一旦我改变了 b,我就永远无法获得旧版本。

最佳答案

这偏离了您的问题,特别是因为未使用 strcpy 标题,请按照您对 Martin James 的评论:

void str_switch(char **a, char **b) {
    char *tmp = *a;
    *a = *b;
    *b = tmp;
}

如果你真的想使用 strcpy,你必须知道 C 字符串的大小。

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

相关文章:

c++ - 如何通过引用传递指针来更改指针指向的位置?

c++ - 函数的复杂参数

从 1 到给定值的 Collat​​z 序列

c++ - 将 ostringstream 输出到文件

string - 对于每个文件 : Walk line by line and grep for string (incorrect output)

java - 在随机字母串中插入字符,但保持成为单词的可能性,没有庞大的数据结构是否可能?

c - 我怎样才能将结构保存在文件中.... C lang

c - 执行基本 OpenMP (C) 程序期间没有响应

c - 当只有两次调用时,每个循环调用函数四次

c - C 错误中的 SIGSEGV