VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 373|回复: 4

[已解决]*(pstr1++) = *(pstr2++);求助

[复制链接]
11_avatar_middle
最佳答案
0 
在线会员 发表于 2020-12-10 21:42:33 | 显示全部楼层 |阅读模式
本帖最后由 liqiaobing 于 2020-12-10 21:44 编辑

为什么输出是空白,我按照视频来的啊。工具用的是vs2103,pstr1[idx] = pstr2[idx];这一句输出没问题,后面跟着视频改成这条语句*(pstr1++) = *(pstr2++);就输出空白,求助。
最佳答案
08_avatar_small
2020-12-10 22:28:46
本帖最后由 SummerGull 于 2020-12-10 22:30 编辑

兄弟牢记一句话 有问题 请一定 把代码发出来。这次代码量少 我手动敲一下。代码量大 没人愿意解答!!
*(pstr1++) = *(pstr2++);求助
  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     char str1[50] = {0}, str2[] = "abcd";
  6.     char *pstr1, *pstr2;
  7.     pstr1 = str1;
  8.     pstr2 = str2;

  9.     int str2len = strlen(str2);

  10.     for (int idx = 0; idx < str2len; idx++)
  11.     {
  12.         *pstr1++ = *pstr2++;
  13.         //pstr1 [idx]= *(pstr2++);
  14.       
  15.         //str1[idx] = *(pstr2++);
  16.      }
  17.     *pstr1 = '\0';

  18.     pstr1 = str1;
  19.     cout << pstr1 << endl;
  20.     //兄弟牢记一句话 有问题 请一定 把代码发出来。这次代码量少 我手动敲一下。代码量大 没人愿意解答
  21.     return 0;
  22. }
复制代码

一定要发代码 粘贴出来,不然很麻烦的。
QQ截图20201210213911.png




上一篇:数组右移位,总是不成功,不知道错在哪?求大神解答!
下一篇:关于重写CListCtrl后如何动态插入多列数据
08_avatar_middle
最佳答案
9 
在线会员 发表于 2020-12-10 22:28:46 | 显示全部楼层    本楼为最佳答案   
bestAnswer
本帖最后由 SummerGull 于 2020-12-10 22:30 编辑

兄弟牢记一句话 有问题 请一定 把代码发出来。这次代码量少 我手动敲一下。代码量大 没人愿意解答!!
*(pstr1++) = *(pstr2++);求助
  1. #include <iostream>
  2. using namespace std;

  3. int main()
  4. {
  5.     char str1[50] = {0}, str2[] = "abcd";
  6.     char *pstr1, *pstr2;
  7.     pstr1 = str1;
  8.     pstr2 = str2;

  9.     int str2len = strlen(str2);

  10.     for (int idx = 0; idx < str2len; idx++)
  11.     {
  12.         *pstr1++ = *pstr2++;
  13.         //pstr1 [idx]= *(pstr2++);
  14.       
  15.         //str1[idx] = *(pstr2++);
  16.      }
  17.     *pstr1 = '\0';

  18.     pstr1 = str1;
  19.     cout << pstr1 << endl;
  20.     //兄弟牢记一句话 有问题 请一定 把代码发出来。这次代码量少 我手动敲一下。代码量大 没人愿意解答
  21.     return 0;
  22. }
复制代码

一定要发代码 粘贴出来,不然很麻烦的。
08_avatar_middle
最佳答案
9 
在线会员 发表于 2020-12-10 22:23:59 | 显示全部楼层
错误找到了,两个点
1、经典错误 '\0'
2、逻辑错误。 *(pstr1++) = *(pstr2++);
这句代码执行后  *(pstr1++)  指向的是哪里?是末尾了吧
尝试 重新 把 pstr1=str1; 赋值运行尝试下

点评

这里的 str1[50]={0};虽然 指出了 但是 人的记忆力有限 最后 末尾加上 *pstr1 = '\0';  发表于 2020-12-10 22:30
11_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-12-11 09:06:28 | 显示全部楼层
SummerGull 发表于 2020-12-10 22:28
兄弟牢记一句话 有问题 请一定 把代码发出来。这次代码量少 我手动敲一下。代码量大 没人愿意解答!!


...

好的,谢谢大佬,以后我会注意一下*(pstr1++) = *(pstr2++);求助
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-4-22 06:45

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表