以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  字符串赋值出现的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=44655)


--  作者:fangel2000
--  发布时间:3/30/2007 9:18:00 PM

--  字符串赋值出现的问题
#include "stdafx.h"
#include <malloc.h>

void test1(char *p,char *q)
{
 while(*p)
 {
  *q++ = *p++;
  printf("%c",*q);
 }
}

int main(int argc, char* argv[])
{
 char *p = "C Language";
 char *q = (char *)malloc(20);
 if(q!=NULL)
  test1(p,q);
 free(q);
 return 0;
}

在VC6.0中调试,结果显示为乱码,大家帮个忙,看看问题所在?


--  作者:一分之千
--  发布时间:4/1/2007 12:42:00 PM

--  
改成这样就可以拉吧?
字符串赋值可以使用一个函数进行.
#include "stdio.h"
#include "string.h"
#include <malloc.h>

void test1(char *p,char *q)
{
 /*
 while(*p)
  {
   *q++ = *p++;
   printf("%c",*q);
  }*/
 strcpy(q,p);
 while (*q)
 {
 printf("%c",*q);
 q++;
 }
 printf("%c",'\n');
}

int main(int argc, char* argv[])
{
 char *p = "C Language";
 char *q = (char *)malloc(20);

 if(q!=NULL)
  test1(p,q);
 free(q);
 return 0;
}


--  作者:fangel2000
--  发布时间:4/1/2007 9:35:00 PM

--  
呵呵,我就是不想利用strcpy啊
我知道原因了,呵呵
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
2,152.344ms