在一个字符串变量中存储一个字符
我基本上是在c编码。 我有一个字符指针指向一个字符。有没有办法将字符指针指向的字符存储在字符串变量中? 因为当我尝试使用“strcpy”时,我得到了类型不匹配错误,因为我试图将字符作为字符串存储在字符串变量中。在一个字符串变量中存储一个字符
说你的指针人物是S定义为
char *s;
你想使之成为一个字符串。
char string[2];
string[0] = *s;
string[1] = '\0';
然后你就设置好了。
这将导致字符串具有自动存储持续时间。您可以根据需要选择分配堆或全局范围。我想你已经知道了。
好的答案,但为了清晰起见,我个人宁愿写'\ 0'',以避免强制。 – sigvaldm
非常感谢您的回答......它的工作原理 –
字符指针是我们在C.
用于“字符串变量”在C的字符串只是字符数组,其与字符\0
结束。你可以有一个静态分配的数组或一个指针指向的动态分配数组。 strcpy
需要这样一个指针。
在C中,一个字符串是__not__只是一个字符数组,一个字符串是一个以空字符结尾的数组。 –
没错,我会指出的! – sigvaldm
您可以取消引用指针以访问该角色。如果你使用的是string
类型,我假设你正在使用C++。
char* c = "z";
string s;
s += *c;
C,问题提到C. –
由于OP有C标签,因此它们可能使用'cs50.h'和那个可恶的'typedef char * string',在这种情况下'+ ='不起作用。 –
你能分享一些代码吗?这会让问题更容易回答。 – Mureinik
请添加一个MCVE _https://*.com/help/mcve_ – CIsForCookies
C中没有“字符串”变量,只有'char *',它们被昵称为“字符串”。因此,你将不得不重写你的意思是“字符串” – snoopy