[英]How do I get string from the address of char*?
char *p = "cat";
char a = *p;
printf("%c", &a);
上面的代码不起作用。 如何从指针 *p 获取字符串数据“cat”并将其存储在 char a 中? 语句 'char *p = "cat";' 不应该改变。
代码中的指针 p 指向字符串的第一个值 c。 因此,当您将 p 处的值分配给 a 时,您将获得存储在 a 中的字符“c”。 但是你在代码的最后一行写了 &a ,它指的是 a 的地址,这将是一个垃圾值,不会给出任何结果。 或者,如果你写 *p 或 a 而不是 &a 你会得到'c'作为结果。
如上:一个字符只能存储一个字符。 字符串是以'\\0'结尾的字符数组。 所以循环遍历字符串并恢复字符,直到找到终止 '\\0' 。
#include <stdio.h>
int main ()
{
char *p = "cat";
int i = 0; char a[100];
while (*p != '\0')
{
a[i] = *p;
i ++;
p += 1;
}
a[i] = '\0';
printf("%s\n", a);
return 0;
}
输出是:猫
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.