[英]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.