fjh120 发表于 2010-4-15 11:21:40

请教C语言问题:如何将字符串常量复制到一个变量中。TKS

现有一常量字符串,想把它复制到一变量中,然后提取有用的字符串出来。
比如:
const char *ch = "abcd";
char *pch;

如何把ch复制到pch中,谢谢。

FoxFox 发表于 2010-4-15 11:32:34

pch = (char*)ch;

aozima 发表于 2010-4-15 11:37:53

回复【1楼】FoxFox
pch = (char*)ch;
-----------------------------------------------------------------------
ch是const,你这样强制过来的,编译是不会报错,但对pch进行写操作的话,就杯具了.

const char *ch = "abcd";

char pch;//尺寸要足够大以容纳源数据.

然后
char *strcpy( char *to, const char *from );

如果只是提取而没有写操作的话,直接对 ch操作就行了,不必复制一份出来.

fjh120 发表于 2010-4-15 11:49:44

根据2楼的方法搞定了,测试代码:

int main()
{
        const char *ch = "abcdefg";
         char pch;

        strcpy(pch,ch);

        printf(pch);
        return 0;
}

1楼的方法没有达到复制的效果,此种方法适合只读。我需要提取出字符来再写回去。谢谢你的指点!
2楼的方法是我想要的,谢谢!

FoxFox 发表于 2010-4-15 12:09:31

2楼的方法是对的。
我的方法只能是传递指针而已。

biansf2001 发表于 2010-4-15 12:24:13

我杯具过。把一个字符串小写改大写,一改就硬件报错。后来复制了才行。

shark 发表于 2010-4-15 12:43:10

PC中,一般编译器都把常量字符串放在只有Read权限的内存中,该内存是不允许改写的,会触发OS异常的。
页: [1]
查看完整版本: 请教C语言问题:如何将字符串常量复制到一个变量中。TKS