【发布时间】:2013-05-15 02:41:21
【问题描述】:
我在为 char 指针赋值时遇到问题。
#include<stdio.h>
int main(int argc, char* argv[]){
char line[200], *p, q;
int i=0;
FILE* f=fopen(argv[1], "r");
for( ; ;){
p=fgets(line, 200, f);
if (p==NULL) break;
printf("%s", p);
i=0;
while(p[i]!='\n'){
if (p[i]=='a') p[i]='A';
i++;
}
printf("%s", p);
}
}
我知道,那行
p[i]='A';
不起作用,但这就是我基本上需要做的,将char* 替换为char。 p 必须是 char*,因为 fgets() 会返回它。我的问题是我是否可以以某种方式将char* 转换为char [],或者是否有办法为char* 赋值?
【问题讨论】:
-
p[i]='A'应该可以工作(假设您希望它将 char 数组的元素 i 设置为 'A')。您遇到了什么问题? -
为什么它不能工作?对我来说它看起来非常好。
-
“我知道,
p[i]='A';行不起作用” - 它在什么意义上不起作用?你怎么知道它不起作用? -
p[i] = 'A';很好。究竟什么不起作用?如果未读取换行符,请注意潜在的缓冲区溢出。 -
您是否希望它更改文件的内容?这是我能想到的唯一思路,这是行不通的。
标签: c pointers char variable-assignment