[英]changing characters of character array using a pointer
它不是那么复杂,我的问题是我不明白如何使用指针更改字符数组的变量
#include "stdio.h"
int main(void) {
// Disable stdout buffering
setvbuf(stdout, NULL, _IONBF, 0);
char a[100], ch, *counter;
int c = 0, i;
counter = a[0];
printf("please enter a sentance:");
while ((ch = getchar()) != '\n'){
printf("yo");
*counter = ch; //problem is here
counter = a[c];
c = c + 1;
}
printf("hi\n");
for(i = c-1; i >= 0; i--){
printf("%c", a[i]);
}
return 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 );
有三个问题。
counter =&(a [0]);
或更好
counter = a;
与点#1相同。 你不必这样做,因为计数器已经指向数组。 只需递增指针即可。
更改
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';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.