【问题标题】:Connecting two strings into one. C [duplicate]将两个字符串连接为一个。 C [重复]
【发布时间】:2016-10-12 07:50:45
【问题描述】:

如何在 C 中结束字符串?我做了一个函数来连接2个字符串并制作一个。我读到我应该用 '\0' 结束字符串,但是如何用这样的声明来做到这一点?

char* string1= "House";
char* string2= "is big";

【问题讨论】:

    标签: c string


    【解决方案1】:

    创建一个足以容纳两个字符串和一个终止符的数组。将第一个字符串复制到数组中。使用strcat 连接另一个字符串。

    【讨论】:

      【解决方案2】:

      试试这个方法

      char* concat(const char *s1, const char *s2)
          {
              char *result = malloc(strlen(s1)+strlen(s2)+1);
              strcpy(result, s1);
              strcat(result, s2);
              return result;
          }
      

      【讨论】:

      • 你应该总是对malloc的返回内存进行类型转换
      • @rootTraveller I disagree, rather strongly.
      • @unwind 是的,但 void* 不会在旧版 C 中得到提升。
      • @rootTraveller 我不相信这是真的(C89 肯定是“旧的”,并且会自动进行这种转换),但即使我不同意今天人们如何编程。要求代码在古代编译器上构建是不正常的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 2018-10-15
      • 2019-10-23
      • 2014-05-20
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多