使用指针更改字符数组的字符

时间:2016-11-13 18:00:31

标签: c arrays pointers character

它并不复杂,我的问题是我不明白如何使用指针更改字符数组的变量

getScore(form);

错误是"退出非零状态"

2 个答案:

答案 0 :(得分:0)

您需要以下

counter = a;
^^^^^^^^^^^
printf("please enter a sentance:");


while ((ch = getchar()) != '\n'){
    printf("yo");
    *counter++ = ch;     //problem is here
    ++c;
}

while ( c != 0 ) printf("%c", a[--c]);

甚至以下

counter = a;
^^^^^^^^^^^
printf("please enter a sentance:");


while ((ch = getchar()) != '\n'){
    printf("yo");
    *counter++ = ch;     //problem is here
}

while ( counter != a ) printf( "%c", *--counter );

答案 1 :(得分:0)

有三个问题。

  1. counter = a [0]; 您将[0]处的值赋给指针。你需要的是这个。
  2. counter =&(a [0]);

    或更好

    counter = a;

    1. counter = a [c];
    2. 与第1点相同。你不必这样做,因为计数器已经指向数组。只需递增指针。

      1. 由于您的数组长度为100,因此只能存储99个字符+空字符。所以你需要一个柜台。所以用c作为计数器。
      2. 更改

        while ((ch = getchar()) != '\n'){
            printf("yo");
            *counter = ch;     //problem is here
            counter = a[c];
            c = c + 1;
        }
        

        i = 0;
        while ((ch = getchar()) != '\n' && ((sizeof(a)/sizeof(a[0])-1)>c)){
            printf("yo");
            *counter = ch;
            counter++;
            c++;
        }
        *counter = '\0';