【问题标题】:C append/concat strings "on the fly"C“即时”附加/连接字符串
【发布时间】:2011-12-16 13:00:14
【问题描述】:

我认为可以在 C 中动态连接字符串(字符数组)。

char* str1= "hello" " " "world";

但是当我尝试以下操作时,我会收到一条错误消息(函数 fopen 的参数太少)。为什么?

fopen(*argv ".comp", "r");

我想用一个 char[] 常量连接参数 - 没有 strcat 间接。这可能吗?

像 PHP 中的 "string".$var 或 Java 中的 "a string like this" + var

【问题讨论】:

    标签: c append ansi concat


    【解决方案1】:

    您只能在编译时连接字符串文字。

    因为编译器不知道*argv 会是什么。

    【讨论】:

    • 所以我每次都要使用 strcat 吗?
    • 一般来说,是的,每次你需要在运行时生成它。
    • Benoit,我以为我会在上一条评论中提到 snprintf,但删除了它,因为在这种特殊情况下,它没有任何好处。
    • @NaN:一般来说,你会想要使用strncat,因为它更安全。
    • Oli,通常是的,但在附加文字时并不重要。我实际上会使用memmove,因为我知道编译时的大小并且知道将它放在哪里,因为我必须在分配内存之前确定原始字符串的大小。
    猜你喜欢
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    相关资源
    最近更新 更多