c - C中用于获取字符串的指针算法

标签 c pointers pointer-arithmetic

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

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

有什么帮助吗? 谢谢

最佳答案

int 的大小可以是 char 大小的 4 倍,所以当您执行 i++ 时,您实际上跳过 3 个字符。

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

修复将 i 更改为 char* 并打印 *i 而不是 *cad

关于c - C中用于获取字符串的指针算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13852540/

相关文章:

c - 为什么这个指针操作会失败?

c - 在C中插入数组结构(字典)

c++ - 不能对 void 指针使用指针运算,那么 void 指针数组是如何工作的呢?

c - 如何在 C 编程中重新排序数组的元素

c - 访问数组元素时指针的索引

c - 指向数组下一个元素的指针

c - 数组变量的 "value"是什么?

c - C中使用malloc动态分配内存

c - 需要左值作为赋值的左操作数

c - X11 等待并获取剪贴板文本