【问题标题】:Concatenating strings (2) [duplicate]连接字符串 (2) [重复]
【发布时间】:2012-07-01 16:12:36
【问题描述】:
char *val1 = "/root";
char *val2 = "/p";
val1 = val1+val2;

我想添加 2 个字符指针值并将其分配给第一个值。以上是代码片段。

【问题讨论】:

  • 如果你想用这种方式编写代码,你真的应该看看 C++... 或任何其他更高级的语言。

标签: c pointers char


【解决方案1】:

不能那样做。由于您有两个指针,因此尝试添加它们将尝试添加指针本身,而不是操纵它们指向的内容。要连接两个字符串,您需要拥有/分配一个足够大的缓冲区来容纳两者:

char *both = malloc(strlen(val1) + strlen(val2) + 1);
if (both != NULL) {
    strcpy(both, val1);
    strcat(both, val2);
}

【讨论】:

    【解决方案2】:

    使用strcatstrncat 函数来连接字符串。 C 没有字符串连接运算符。

    【讨论】:

      猜你喜欢
      • 2015-08-23
      • 2020-12-30
      • 2015-07-31
      • 2013-07-21
      • 2013-09-14
      • 2013-11-30
      • 1970-01-01
      • 2013-09-26
      • 2012-12-24
      相关资源
      最近更新 更多