2017-06-14 302 views
0

我基本上是在c编码。 我有一个字符指针指向一个字符。有没有办法将字符指针指向的字符存储在字符串变量中? 因为当我尝试使用“strcpy”时,我得到了类型不匹配错误,因为我试图将字符作为字符串存储在字符串变量中。在一个字符串变量中存储一个字符

+8

你能分享一些代码吗?这会让问题更容易回答。 – Mureinik

+1

请添加一个MCVE _https://stackoverflow.com/help/mcve_ – CIsForCookies

+0

C中没有“字符串”变量,只有'char *',它们被昵称为“字符串”。因此,你将不得不重写你的意思是“字符串” – snoopy

回答

1

说你的指针人物是S定义为

char *s; 

你想使之成为一个字符串。

char string[2]; 
string[0] = *s; 
string[1] = '\0'; 

然后你就设置好了。

这将导致字符串具有自动存储持续时间。您可以根据需要选择分配堆或全局范围。我想你已经知道了。

+0

好的答案,但为了清晰起见,我个人宁愿写'\ 0'',以避免强制。 – sigvaldm

+0

非常感谢您的回答......它的工作原理 –

0

字符指针我们在C.

用于“字符串变量”在C的字符串只是字符数组,其与字符\0结束。你可以有一个静态分配的数组或一个指针指向的动态分配数组。 strcpy需要这样一个指针。

+2

在C中,一个字符串是__not__只是一个字符数组,一个字符串是一个以空字符结尾的数组。 –

+0

没错,我会指出的! – sigvaldm

1

您可以取消引用指针以访问该角色。如果你使用的是string类型,我假设你正在使用C++。

char* c = "z"; 
string s; 
s += *c; 
+1

C,问题提到C. –

+0

由于OP有C标签,因此它们可能使用'cs50.h'和那个可恶的'typedef char * string',在这种情况下'+ ='不起作用。 –

相关问题