![](/img/trans.png)
[英]How can I swap the first character of two strings with each other ? the two strings are stored in array of pointers
[英]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.