C-如何将指针值复制到非指针

时间:2018-07-05 00:15:42

标签: c

因此,我正在使用代码替换字符串。但这必须像这样

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用于替换命令。
顺便说一句,这是我的新手,如果我在描述我的问题时犯了一个错误,对不起。

2 个答案:

答案 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