访问char *的元素

时间:2014-11-12 09:42:15

标签: c

我有char *p = "abcd",如何只使用C(不是C ++)访问元素'a','b','c','d'?任何帮助将不胜感激。

6 个答案:

答案 0 :(得分:15)

您可以使用索引:

 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 */

答案 1 :(得分:4)

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

示例:

代表1个字符,使用p[0]2和字符,使用p[1]等等。

答案 2 :(得分:2)

使用array subscript operator []。它允许您以p[n]

的形式访问指针类型的第n个元素

您还可以使用增量运算符++来增加指针。

答案 3 :(得分:2)

另一个例子:

#include <stdio.h>

int main()
{
    char *p="abcd";
    for (; *p; p++)
        printf("%c\n", *p);
    return 0;
}

结果是:

a
b
c
d

答案 4 :(得分:1)

#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;
}

返回

a
b
c
d

答案 5 :(得分:1)

#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