C 逐字符打印字符串

C 逐字符打印字符串,c,C,字符串存储在连续的内存位置&当将地址传递给printf()时,它应该打印字符。我已经开始学习C了。我找不到答案。请帮助。好的a是数组的名称,不能递增。更改数组的地址是非法的 因此,定义一个指向a的指针,然后递增 int main() { int i; char a[]={"Hello"}; while(a!='\0') { printf("%c",*a); a++; } getch(); return 0; } #

字符串存储在连续的内存位置&当将地址传递给printf()时,它应该打印字符。我已经开始学习C了。我找不到答案。请帮助。

好的
a
是数组的名称,不能递增。更改数组的地址是非法的

因此,定义一个指向
a
的指针,然后递增

int main() {
    int i;
    char a[]={"Hello"};
    while(a!='\0') {
        printf("%c",*a);
        a++;
    }
    getch();
    return 0;
}
#包括
#包括
int main()
{
int i;
字符a[]=“你好”;
char*ptr=a;
而(*ptr!='\0')
{
printf(“%c”,*ptr);
//a++在这里是非法的
ptr++;
}
getch();
返回0;
}
注意:

事实上,C中的数组是不可修改的
左值。没有
C语言中可以修改数组本身的操作(仅单个

元素可以修改)。

好的
a
是不能递增的数组名称。更改数组的地址是非法的

因此,定义一个指向
a
的指针,然后递增

int main() {
    int i;
    char a[]={"Hello"};
    while(a!='\0') {
        printf("%c",*a);
        a++;
    }
    getch();
    return 0;
}
#包括
#包括
int main()
{
int i;
字符a[]=“你好”;
char*ptr=a;
而(*ptr!='\0')
{
printf(“%c”,*ptr);
//a++在这里是非法的
ptr++;
}
getch();
返回0;
}
注意:

事实上,C中的数组是不可修改的
左值。没有
C语言中可以修改数组本身的操作(仅单个

元素可以修改)。

在代码中,
a
是数组的名称,不能像
a++
那样修改它。使用如下指针:

#include <stdio.h>
#include <conio.h>

 int main()
 {
     int i;
     char a[]="Hello";
     char *ptr = a;
     while(*ptr!='\0')
     {
         printf("%c",*ptr);
         // a++ here would be illegal
         ptr++;
     }
     getch();
     return 0;
 }

在代码中,
a
是数组的名称,不能像
a++
那样修改它。使用如下指针:

#include <stdio.h>
#include <conio.h>

 int main()
 {
     int i;
     char a[]="Hello";
     char *ptr = a;
     while(*ptr!='\0')
     {
         printf("%c",*ptr);
         // a++ here would be illegal
         ptr++;
     }
     getch();
     return 0;
 }
三个问题:

  • chara[]={“Hello”}是非法的
    {“Hello”}
    只能初始化
    char*a[]
    。您可能想要
    chara[]=“Hello”
  • while(a!='\0')
    -您可能是指
    *a!='\0'
    a
    是数组本身
  • a++-数组不能递增。你应该增加一个指向它的指针
  • 三个问题:

  • chara[]={“Hello”}是非法的
    {“Hello”}
    只能初始化
    char*a[]
    。您可能想要
    chara[]=“Hello”
  • while(a!='\0')
    -您可能是指
    *a!='\0'
    a
    是数组本身
  • a++-数组不能递增。你应该增加一个指向它的指针

  • 您也可以使用for循环进行尝试:

    char *p = "Hello";
    while(*p++)
    {
         printf("%c",*p);
    }
    
    #包括
    内部主(空){
    字符a[]=“你好”;
    char*p;
    对于(p=a;*p!='\0';p++){
    printf(“%c”,*p);
    }
    返回0;
    }
    
    您也可以使用for循环进行尝试:

    char *p = "Hello";
    while(*p++)
    {
         printf("%c",*p);
    }
    
    #包括
    内部主(空){
    字符a[]=“你好”;
    char*p;
    对于(p=a;*p!='\0';p++){
    printf(“%c”,*p);
    }
    返回0;
    }
    
    第一个问题是你的头衔。它不是信息性的,请编辑它。可能的重复不是问题的完全重复,但您试图使用数组,就像它是指针一样,因此我相信链接问题的答案也应该回答您的问题。
    man putc
    manfputc
    使用
    printf
    打印单个字符没有错,但有点奇怪。第一个问题是你的标题。它不是信息性的,请编辑它。可能的重复不是问题的完全重复,但您试图使用数组,就像它是指针一样,因此我相信链接问题的答案也应该回答您的问题。
    man putc
    manfputc
    使用
    printf
    打印单个字符没有错,但有点奇怪。