如何在C中的另一个字符串中插入字符串
我需要在特定位置的另一个字符串中插入一个字符串。下面是一个简单的例子:如何在C中的另一个字符串中插入字符串,c,string,C,String,我需要在特定位置的另一个字符串中插入一个字符串。下面是一个简单的例子: char *a = "Dany S."; char *b = "My name is *a , I come from ... "; 因此,在stringb中取代*a我希望有Dany S. 如何做到这一点?您可以使用printf,即: #include <stdio.h> char *a = "Dany S."; char *b = "My name is %s , I come from ... ";
char *a = "Dany S.";
char *b = "My name is *a , I come from ... ";
因此,在stringb
中取代*a
我希望有Dany S.
如何做到这一点?您可以使用printf,即:
#include <stdio.h>
char *a = "Dany S.";
char *b = "My name is %s , I come from ... ";
printf(b, a);
#包括
char*a=“Dany S.”;
char*b=“我的名字是%s,我来自……”;
printf(b,a);
最好/最简单的方法是使用标准C约定:
char *a = "Dany S.";
char *b = "My name is %s, I come from...";
char *c = malloc(strlen(a) + strlen(b));
sprintf( c, b, a );
然后c
包含新字符串。使用c
后,需要释放内存:
free( c );
如果要在终止行的输出中使用c
,则可以将b
声明为:
char *b = "My name is %s, I come from...\n";
无法修改字符串文字。将内容复制到数组中。搜索要替换的字符串。让我们看看你尝试过什么。听说过C标准库吗?我真的应该让你看看标准库,如果你知道里面有什么,那会对你有好处,但我会很高兴地说。*a在引号内,所以只有两个字符;它不引用变量。而且*a与[0]相同,所以它只是一个字符;只有一个“D”那么行尾字符呢?char*的Sizeof不返回字符串的大小。使用strlen。空终止符仍然需要
+1
。+1对你来说,因为你是个绅士。我想指出的是,在malloc
之后,OP负责释放c
指向的内存块,否则他可能会泄漏内存(他似乎是个新手)这不是sprintf吗?有一个完整的系列,printf输出到stdout,fprintf(文件,到一个文件,sprintf到一个字符串),然后有v..版本,但不知道需要什么…问题不是如何在屏幕上打印东西,而是“在另一个字符串中插入一个字符串”。