我有char *p = "abcd"
,如何只使用C(不是C ++)访问元素'a','b','c','d'
?任何帮助将不胜感激。
答案 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]
,其中n
是n+1
个字符[元素]。
示例:
代表1
个字符,使用p[0]
,2
和字符,使用p[1]
等等。
答案 2 :(得分:2)
使用array subscript operator []
。它允许您以p[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