我想将一个字符指针(指向数组)传递给一个函数,该函数将逐个打印字母。例如我正在使用下面的代码:
#include<stdio.h>
#include<string.h>
void string1(char *q)
{
while(*q)
{
printf(q++);
printf("\n");
}
}
main()
{
char name[]= "hello";
char *p=name;
string1(p);
}
打印:
- 你好
- 你好
- 你好
- 你好
- o
但是我想要它打印出来;
- h
- e
- 我
- 我
- o
我无法通过在 printf 中使用变量 q 来做到这一点。谢谢
最佳答案
你的句子:printf(q++);
是错误的。
你只需要打印一个字符:
printf("%c", *g++);
更好的选择:
putchar(*g++);
一般来说,考虑到:
g
是字符数组的地址。- 要访问
g
指向的第一个字符,必须使用运算符*
,这样:*g
。
printf()
中的修饰符"%c"
使您可以打印char
类型的数据。
关于C 指向字符数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24234550/