作者cfleu (世事难预料)
看板C_and_CPP
标题[问题] const的问题
时间Wed Dec 2 18:40:41 2009
( *[1m *[m 为色码,可以按 Ctrl+V 预览会显示的颜色 )
( 未必需要依照此格式,文章条理清楚即可 )
遇到的问题: (题意请描述清楚)
我有两个字串分别是:
const char *input = "12pp";
const char *output;
经过了一些运算後,我希望让output的内容也为"pp"
不太知道如何着手,请板上前辈们给点意见
希望得到的正确结果:
input="12pp"时
output="pp"
程式跑出来的错误结果:
开发平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
gcc/linux
有问题的code: (请善用置底文标色功能)
补充说明:
初学C语言,这个步骤我卡关卡很久,希望大家能给点意见或关键字提示
非常感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.251.143.250
1F:→ devilarise:如果你愿意拿掉const就很简单@@, 不拿掉, ㄜ~纯C不熟QQ 12/02 18:48
2F:→ cfleu:别让我QQ阿...y 12/02 18:49
3F:推 twotwoone:output = input; 12/02 18:54
4F:→ snoopy0907:const char *output=&input不就好了?还是我会错意 12/02 18:57
抱歉楼上各位前辈!题意不清,在此先与大家鞠躬道歉!
我把我的code贴出来好了
int main(int argc, char *argv[])
{
const char *input = "t3454y542g35grt24";
const char *output = NULL;
int i, j=0;
for (i=0; i<strlen(input); i++)
{
if(isalpha(input[i]))
{
const char *output[j]=&input[i];,,,,有问题的是这行
j++; 该如何一个字一个字回填呢?
}
}
}
也就是说我希望程式执行完以後,output="tyggrt"
※ 编辑: cfleu 来自: 60.251.143.250 (12/02 19:03)
※ 编辑: cfleu 来自: 60.251.143.250 (12/02 19:05)
5F:推 twotwoone:整个观念都错了,从头开始看吧,没学到const前先别用 12/02 19:07
6F:→ james732:我想请问你的 output 写 const 的理由...? 12/02 19:07
>//<大大好眼力!
因为後面有个function要用到,而他的格式是
function(const char, int.....)
而我想再输入以前,对字元先做点前处理,才发生了这场乌龙,希望大家能给点方向!
感谢
※ 编辑: cfleu 来自: 60.251.143.250 (12/02 19:10)
7F:→ james732:第二个问题,请问你 input 到 output 的关系? 12/02 19:13
8F:→ james732:单纯的只是把数字去掉吗? 12/02 19:13
9F:→ cfleu:是的! 12/02 19:13
10F:→ Minilogo:一开始output给NULL之後就不能再改了吧 12/02 19:16
11F:推 twotwoone:const修饰的是*output,所以还是能改output的指标值 12/02 19:17
12F:→ cfleu:>//<贴错了,总之,我把他拿掉了。。。 12/02 19:18