#include <windows.h>
#include <stdio.h>void main()
{
char strbuf[32768];
char strsou[]=" *I love you* ";
unsigned int lenj=0;
for (int i=0;i<10;i++)
{
CopyMemory(strbuf+lenj,strsou,sizeof(strsou));
//memcpy(strbuf+lenj,strsou,sizeof(strsou));
lenj+=sizeof(strsou);
printf("%d%s",i,strbuf);
printf("%d",lenj);
printf("\n");
}
printf("Result:%s",strbuf);}//这个程序的结果是什么呢?
//我希望结果是:strbuf中存放爱10个*I love you* ,but...
//why...
//能告诉我如何做吗?
#include <windows.h>
#include <stdio.h>void main()
{
char strbuf[32768];
char strsou[]=" *I love you* ";
unsigned int lenj=0;
for (int i=0;i<10;i++)
{
CopyMemory(strbuf+lenj,strsou,sizeof(strsou));
//memcpy(strbuf+lenj,strsou,sizeof(strsou));
lenj+=sizeof(strsou);
printf("%d%s",i,strbuf);
printf("%d",lenj);
printf("\n");
}
printf("Result:%s",strbuf);}//这个程序的结果是什么呢?
//我希望结果是:strbuf中存放爱10个*I love you* ,but...
//why...
//能告诉我如何做吗?
{
char strbuf[32768];
char strsou[]=" *I love you* ";
unsigned int lenj=0;
for (int i=0;i<10;i++)
{
CopyMemory(strbuf+lenj,strsou,sizeof(strsou));
//memcpy(strbuf+lenj,strsou,sizeof(strsou));
lenj+=sizeof(strsou)-1; //这儿减1就可以了
printf("%d%s",i,strbuf);
printf("%d",lenj);
printf("\n");
}
printf("Result:%s",strbuf);
}
之所以显示不出来是因为字符串以0结束,这个0占了一个位置,而printf却认为字符串到0时就结束了,所以打印不出来后面的字符。
不过我这几天在一直调试的与该问题有关的问题还没得到解决,真让我烦恼,不知道何时能调通我的这个类,唉...