用指针打印abc

时间:2014-03-19 16:23:55

标签: c arrays pointers

你好我的程序有问题,程序应该用指针打印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;
}

感谢任何能帮助我理解这个问题的人,我非常感激

3 个答案:

答案 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);
}