簡體   English   中英

如何使用指針打印字符數組中的每個字符?

[英]How can I print each character in my character array using pointers?

我寫了以下代碼:

char arrayD[] = "asdf";
char *arraypointer = &arrayD;
while(*arraypointer != '\0'){
    printf("%s \n", arraypointer+1);
    arraypointer++;
}

我嘗試%d%c打印每個字符。 但是,使用%c,我得到“????”,使用%s,我得到“ sdf sd f”。 等。我在這里想念什么?

您正在打印指針地址,而不是指針指向的地址。 另外arrayD是地址,您不需要&arrayD。 這是一個完整的工作示例:

#include <stdio.h>
int main()
{
    char arrayD[] = "asdf";
    char *arraypointer = arrayD;
    while(*arraypointer != '\0'){
        printf("%c \n", *(arraypointer+1));
        arraypointer++;
    }
    return 0;
}
void print_string_by_chars(const char *str)
{
    while(*str)
    {
        putc(*str++, stdout);
        putc('\n', stdout);
    }
}

在您的情況下的用法:

print_string_by_chars(arrayD)

嘿,您沒有取消引用指針。 你做了arrayptr但你需要做*arrayptr 另外,如果要打印單個字符,則需要使用%c。

這是代碼

#include <stdio.h>
int main()
{
    char arrayD[] = "asdf";
    char *arraypointer = arrayD;
    while(*arraypointer != '\0'){
        printf("%c \n", *(arraypointer));
        arraypointer++;
    }
    return 0;
}

輸出:

a 
s 
d 
f

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM