你好我的程序有问题,程序应该用指针打印abc
代码 -
void printArray(char* p, int len)
{
for( p ; p < p + len ; p++ )
{
printf("%c", *p);
}
printf("\n");
}
int main()
{
char* abc = "abcdefghijklmnopqrstuvwxyz";
printArray(abc, 26);
return 0;
}
感谢任何能帮助我理解这个问题的人,我非常感激
答案 0 :(得分:6)
尝试
void printArray(char* p, int len)
{
while(len--)
printf("%c", *p++);
printf("\n");
}
或真正的k&amp; R风格
void printArray(char *p)
{
while(*p) printf("%c",*p++);
printf("\n");
}
答案 1 :(得分:0)
#include <stdio.h>
void print(char* array)
{
while(*array)
{
printf("%c",*array++);
}
printf("\n");
}
int main()
{
char* temp = "abcdef";
print(temp);
return 0;
}
不需要len
。
这是如何工作的?好吧,因为char * temp
以空值终止,所以while循环将一直运行,直到它到达空终止字符(0
)并且while(0)
为false,因此它退出。
答案 2 :(得分:0)
您需要为迭代使用不同的变量:
for (char *cur = p; cur < p + len; cur++) {
printf("%c", cur);
}