0

我想获取字符数组的元素,但根本没有成功,问题是我只得到第一个和最后一个元素,仅此而已,我的代码是:

void getcharacters(char *cad)
{
 int l;
 int *i;
 l=strlen(cad);
 for (i=&cad[0];i<&cad[l];i++){
     printf("%c\n",*cad);
 }
}

有什么帮助吗?谢谢

4

4 回答 4

4

an 的大小int可以是 a 的 4 x 大小char,所以当你这样做时,i++你实际上是在跳过 3 个字符。

此外,您打印出来*cad而不是*i.

修复更改ichar*打印*i而不是*cad

于 2012-12-13T03:42:25.823 回答
2

您对所有 printf 使用相同的字符(*cadcad[0])。您需要的是使用索引在每次迭代中获取下一个字符。我还需要成为指向 char 的指针:

void getcharacters(char *cad)
{
 int l;
 char *i;
 l=strlen(cad);
 for (i=&cad[0];i<&cad[l];i++){
     printf("%c\n", *i );
 }
}
于 2012-12-13T03:43:07.647 回答
2

为什么不从第一个字符迭代到最后一个字符并将它们作为数组索引访问

int i;
int l=strlen(cad);
for (i=0;i<l;i++)
{
  printf("%c\n",cad[i]);
}
于 2012-12-13T03:43:36.527 回答
1

其他答案已经告诉您为什么它不起作用,我想知道为什么您不只是迭代直到空终止符?

void getcharacters(char *cad)
{
 char *i;
 for (i = cad; *i; i++) {
     printf("%c\n",*i);
 }
}
于 2012-12-13T03:46:48.790 回答