因此,我正在使用代码替换字符串。但这必须像这样
char *a = "s0me string";
char *b = repl_str(a,"0",o");
printf(b);
它正在工作,但我想将其用作非指针。那么有没有办法将指针值复制到非指针? 我想这样做
char *a = "* string";
char *b = repl_str(a,"*","a");
char c[]=b;
printf(c);
很明显,最后一个代码不起作用。我收到此错误:
s.c:93:10: error: invalid initializer
char c[]=b;
我将这段代码from here用于替换命令。
顺便说一句,这是我的新手,如果我在描述我的问题时犯了一个错误,对不起。
答案 0 :(得分:0)
假设repl_str
就地修改字符串。
char a[] = "* string";
char *b = &a[0];
repl_str(b,"*","a");
printf(a);
答案 1 :(得分:0)
我唯一想到的方法是使用VLA(可变长度数组):
char *ptr = "Some string";
char str[strlen(ptr) + 1];
strcpy(str, ptr);
puts(str);
但是您不能直接分配一个值(您需要使用strcpy
复制内容),换句话说:an array is not a modifiable lvalue。