C 访问字符的元素*

C 访问字符的元素*,c,C,我有一个char*p=“abcd”,如何仅使用c(而不是c++)访问元素'a'、'b'、'c'、'd'?任何帮助都将不胜感激。这里,p指的是字符指针数组。您可以使用数组索引来访问该数组中的每个变量。最广泛使用的符号是p[n],其中n是n+1th字符[元素] 例如: 对于1st字符,使用p[0],2nd字符,使用p[1]等等。您可以使用索引: char a = p[0]; char b = p[1]; /* and so on */ 同样,您可以使用指针算法,但我发现它可读性较差: cha

我有一个
char*p=“abcd”
,如何仅使用c(而不是c++)访问元素
'a'、'b'、'c'、'd'
?任何帮助都将不胜感激。

这里,
p
指的是字符指针数组。您可以使用数组索引来访问该数组中的每个变量。最广泛使用的符号是
p[n]
,其中
n
n+1
th字符[元素]

例如:

对于
1
st字符,使用
p[0]
2
nd字符,使用
p[1]
等等。

您可以使用索引:

 char a = p[0];
 char b = p[1];
 /* and so on */
同样,您可以使用指针算法,但我发现它可读性较差:

char a = *p;
char b = *(p+1);
如果你真的想给某人一个惊喜,你也可以这样写:

 char a = 0[p];
 char b = 1[p];
 /* and so on */
使用。它允许您以
p[n]
的形式访问指针类型的第n个元素

您还可以使用递增运算符递增指针,例如:

#include <stdio.h>

int main()
{
    char *p="abcd";
    printf("%c\n", p[0]);
    printf("%c\n", p[1]);
    printf("%c\n", p[2]);
    printf("%c\n", p[3]);
    return 0;
}
#include <stdio.h>

int main()
{
    char *p="abcd";
    for (; *p; p++)
        printf("%c\n", *p);
    return 0;
}
第二种方法:

#include <stdio.h>
#include <stdlib.h>

void main()
{
    char* str="Hello";
    int n=strlen(str);
    for(int i=0;i<n;i++)
    {
        printf("%c"str[i]);
    }
}

我不想向初学者宣传第三种方法,但要明确指出这是一种不好的做法。我也不建议在这种情况下使用指针算法,但知道这三种方法是有价值的exist@karoly我是说,除了直接索引(第一种选择)之外,使用任何东西都是疯狂的。
a
b
c
d
#include <stdio.h>
#include <stdlib.h>

void main()
{
    char* str="Hello, World!";
    printf("%s\n",str);
}
Hello, World!
#include <stdio.h>
#include <stdlib.h>

void main()
{
    char* str="Hello";
    int n=strlen(str);
    for(int i=0;i<n;i++)
    {
        printf("%c"str[i]);
    }
}
Hello