访问char*的元素

  • 本文关键字:元素 char 访问 c
  • 更新时间 :
  • 英文 :


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

您可以使用索引:

 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是指一个字符指针数组。您可以使用数组索引来访问该数组中的每个变量。最广泛使用的符号是p[n],其中n是第n+1个字符[元素]。

示例:

对于1的第一个字符,使用p[0]2的第二个字符、使用p[1],依此类推。

另一个例子:

#include <stdio.h>
int main()
{
    char *p="abcd";
    for (; *p; p++)
        printf("%cn", *p);
    return 0;
}

结果是:

a
b
c
d

使用数组下标运算符[]。它允许您访问p[n]形式的指针类型的第n个元素。

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

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

返回

a
b
c
d
#include <stdio.h>
#include <stdlib.h>
void main()
{
    char* str="Hello, World!";
    printf("%sn",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

最新更新