c - 使用指针导航数组,而不是使用 int

标签 c arrays loops pointers

我如何在我的程序中使用指针来跟踪数组的当前位置,而不是使用“计数器”?

#include <stdio.h>
#include <string.h>

#define MAX 100

int main(void){

int counter = 0, c;
char *charPtr, characterArray[MAX] = { 0 };

printf("Enter a message: ");

for (c = getchar(); c != EOF && c != '\n'; c = getchar()){
    charPtr = &characterArray[0];
    characterArray[*charPtr++] = c;
}

counter = strlen(characterArray) - 1;
printf("The reverse order is: ");

while (counter >= 0){
    printf("%c", characterArray[counter]);
    --counter;
}
printf("\n\n");

return 0;
}

最佳答案

大致是这样的:

char *endptr = characterArray + strlen(characterArray) - 1;

printf("The reverse order is: ");

while (endptr >= characterArray){
    printf("%c", *endptr--);
}

代码未经测试。

关于c - 使用指针导航数组,而不是使用 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29554992/

相关文章:

c - 使用 FILE 类型的结构时接收段错误 - C

c++ - 文件何时加载到内存中 - 用于 fread、fopen 和 fwrite 调用?

c - 是否可以强制对 c 中的宏求值?

c - Malloc 字符串数组 - C

ios - 如何在字符串数组中添加数字? swift

java - 如何在循环中使用paintComponent?

c - 编写一个 C 程序,根据给定的整数数组创建新数组,将所有偶数移到所有奇数之前

javascript - 拆分而不丢失分隔符

javascript - 我想写javascript代码来获得加法倒计时

loops - Ansible 和循环中的嵌套变量