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