首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

copy解决方法

2012-02-16 
copy#include stdio.hvoid copy_string(char *from,char *to){while(*from!\0){*to++ *from++}*to

copy
#include <stdio.h>

void copy_string(char *from,char *to)
{
while(*from!='\0')
{
*to++ =*from++;
}
*to = '\0';
}
void main() 
{  
char *a = "I am a student";
char *b = "I anm jjgkghh jiktr";
printf("\nstring = %s\nstring = %s\n",a,b);
copy_string(a,b);
printf("\nstring = %s\nstring = %s\n",a,b);
}


错在哪? 


[解决办法]
char *a = new char[100];

char* b = new char[100];
strcpy(a,"i am a student");
strcpy(b,"i am jjgkghh..l...");


否则
按你的做法指向的是一个常量。。
[解决办法]
又是这个问题,
char *a = "I am a student"; 
char *b = "I anm jjgkghh jiktr";

改为这样试下:
char a[]="I am a student"; 
char b[]= "I anm jjgkghh jiktr";

[解决办法]
常量字符串无法修改的。
你需要在栈上申请内存
[解决办法]
char*a = "xxx";
这样a指向的只是一个常量,就是const,不允许改变的,所以会出错。
给一个常量赋值,就会出错。。
[解决办法]

引用楼主 ikuaifenglea 的帖子:
#include <stdio.h> 

void copy_string(char *from,char *to) 

while(*from!='\0') 

*to++ =*from++; 

*to = '\0'; 

void main()
{
char a[] = "I am a student";
char b[] = "I anm jjgkghh jiktr";
printf("\nstring = %s\nstring = %s\n",a,b); 
copy_string(a,b); 
printf("\nstring = %s\nstring = %s\n",a,b); 



错在哪?

[解决办法]
这样做很危险,即便定义数组,也很有可能出现越界的情况,按照4楼的说法,最好是在堆或者栈上面申请足够的内存!
[解决办法]
应该是某些教材的问题,已经出现好多次了。。。
[解决办法]
猫是 老谭的书上的
[解决办法]
老谭的书上的题目
[解决办法]
c++语言程序设计(第3版)
P27
:虽然C++中有字符串常量,却没有字符串变量 
可以用字符型数组,string来存储字符串

[解决办法]
常量字符串的拷贝复制错误

热点排行