scanf中%s输入字符串,不理解字符数组名+1的操作

发布于 2022-08-29 18:30:58 字数 318 浏览 12 评论 0

程序要求连续输入字符串,如:
aabbcc abvc
sss adfa
csf dsagsd

看了别人的代码有些地方不理解

  while((scanf("%s %s",st1+1,st2+1)!=EOF)
   {
      len1=strlen(st1+1);
      len2=strlen(st2+1);
      ......
   }

请问scanf中 字符数组名+1的操做是扩充了字符数组吗?如果是那么扩充的内容是什么,代码中Len1和len2 与原本st1,st2的长度有什么变化呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

情未る 2022-09-05 18:30:58

个人觉得将+1全部去掉的结果是一样的吧,楼主把代码贴全,不知道上下文的话,不清楚为什么要加1.
对于str+1的意思是数组元素str[1]的地址。

云淡风轻 2022-09-05 18:30:58

scanf("%s %s",st1+1,st2+1) , 不是从st1 和 st2首地址开始写, 从数组下标是1的位置开始写。 具体为什么数组不从头开始写,通过这些代码还不容易看出来。len1 ,len2还是输入字符串的长度

旧伤慢歌 2022-09-05 18:30:58

只能看出来st1和st2不从首字节开始写

看不出来首字节留着干什么用。

雨轻弹 2022-09-05 18:30:58

竞赛代码吧… 看起来这么写的应该就是了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文