我有一个用于C++的代码(它可以工作):
char* ConcatCharToCharArray(char *Str, char Chr)
{
char *StrResult = new char[strlen(Str) + 2];
strcpy(StrResult, Str);
StrResult[strlen(Str)] = Chr;
StrResult[strlen(Str) + 1] = '\0';
return StrResult;
}
/* Example: String = "Hello worl"
Char = "d"
Final string = "Hello world" */
我遇到了一个小问题,我正在Ubuntu上制作标准的C程序,需要这段代码。但是,“new”并没有被识别为保留字,并且下面甚至还有一个红色标记。
我尝试了:char *StrResult[strlen(Str) + 2]
,但它不起作用,因为这种方式只接受常量值。我猜“malloc”可能是标准的C解决方案,在这种情况下我该如何使用“malloc”或任何其他方法?非常感谢。
malloc
作为标记。 - Yu Haomalloc
。网络上有大量关于如何使用它的信息。 - Pankratesstrlen()
,将结果赋值给一个变量,并从那时起使用该变量而不是额外的strlen()
调用。 - Michael Burrnew char[X]
替换为malloc(X)
,并在顶部加入#include <stdlib.h>
。 - M.M