c语言中 用指针的方式给字符串赋值,如何将其另外复制到另一个指针,而在操作新指针时对原指针没有影响?

如:char *a,*s;
a="i love you";
*s=*a;
这样对吗?可如果用char s;再s=*a呢?
我的a和s都是要用到函数中的····求贵人相助!

第1个回答  2012-01-27
char *a,*s;
a="i love you";
*s=*a;
这样不对。s和a变成了同一指针。
char s;
s=*a应该是通不过编译的。
试试
char *a,*s;
a="i love you";
strcpy(s, a);本回答被提问者和网友采纳
第2个回答  2012-01-27
a="i love you"; // 这是一个字符串,指针a指向的是字符串首字母i,即a=&i;
我建议你使用这种方式来定义这句话
char a[]="i love you",b[20]; //先给b开辟空间,a是字符数组
int i;
for(i=0;*(a+i)!='\0';i++) //这就话就实现了复制
*(b+i)=*(a+i);
*(b+i)='\0';
因为ab数组存在不同的地方所以这种方法是肯定没有影响的
好久没粘c了忘的差不多了,不知打对不对的说
第3个回答  2012-01-27
恩 你这样说过是不对的哈 因为你没有申请内存哈 如:char *a,*s;
a="i love you"; 就是非法访问了 同样*S=*A 错的有点大了
第4个回答  2012-02-02
字符窜赋值可以用strcpy(a,s);函数,加上头文件#include"string,h"
相似回答