K. chino with c language(水题)

偏执的太偏执、 2022-10-13 02:52 88阅读 0赞

题目大意

memcpy不检查源地址和目标地址是否有重叠
memmove考虑重叠的情况
具体区别以及代码


代码

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn = 1e5+10;
  4. char s[maxn], t[maxn];
  5. void solve()
  6. {
  7. int n,l,p1,p2;
  8. cin >> n >> s + 1 >> p1 >> p2 >> l;
  9. memcpy(t + 1, s + 1, n * sizeof(char));
  10. memmove(t + p2, t + p1, l * sizeof(char));
  11. for (int i = 0; i < l; ++i) s[p2 + i] = s[p1 + i];
  12. cout << s + 1;
  13. cout << endl;
  14. cout <<t + 1;
  15. }
  16. int main()
  17. {
  18. ios_base::sync_with_stdio(false);
  19. cin.tie(nullptr); cout.tie(nullptr);
  20. solve();
  21. return 0;
  22. }

发表评论

表情:
评论列表 (有 0 条评论,88人围观)

还没有评论,来说两句吧...

相关阅读

    相关 F. chino with ball

    题目大意 有 N N N 个小球在光滑水平的地上,初始速度有三种情况, − 1 , 0 , 1 -1, 0, 1 −1,0,1 求 k k k 秒后各个小球的位置

    相关 算法训练 区间k大数查询()

    问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。 第