当前位置:   article > 正文

【PTA】【C语言】使用函数实现字符串复制_输入一个字符串 t 和一个正整数 m,将字符串 t 中从第 m 个字符开始的全部字符复制

输入一个字符串 t 和一个正整数 m,将字符串 t 中从第 m 个字符开始的全部字符复制

输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:

输入一个字符串 t 和一个正整数 m,将字符串 t 中从第 m 个字符开始的全部字符复制到字符串 s 中,再输出字符串 s。

要求定义并调用函数 strmcpy(s,t,m), 它的功能是将字符串 t 中从第 m 个字符开始的全部字符复制到字符串 s 中,函数形参s和t的类型是字符指针,形参m的类型是int,函数类型是void。

输入输出示例:括号内为说明,无需输入输出

输入样例:

  1. 3 (repeat=3
  2. happy new year
  3. 7
  4. happy
  5. 1
  6. new
  7. 4

结尾无空行

输出样例:

  1. new year (从"happy new year"7个字符开始组成的新字符串为"new year"
  2. happy (从"happy"1个字符开始组成的新字符串为"happy"
  3. error input ("new"的长度小于4

结尾无空行

代码如下: 

  1. #include <stdio.h>
  2. #include <string.h>
  3. void strmcpy(char* s, char* t, int m);
  4. int main()
  5. {
  6. char s[1000], t[1000];
  7. int repeat, i, m;
  8. scanf("%d\n",&repeat);
  9. for(i = 0; i < repeat; i++)
  10. {
  11. //memset(s, '\0', sizeof(s)); //数组清空
  12. gets(t);
  13. scanf("%d",&m);
  14. getchar();
  15. if(m > strlen(t))
  16. {
  17. printf("error input");
  18. continue;
  19. }
  20. strmcpy(s,t,m);
  21. puts(s);
  22. }
  23. return 0;
  24. }
  25. void strmcpy(char* s, char* t, int m)
  26. {
  27. int i, j = 0;
  28. for (i = m - 1; t[i] != '\0'; i++)
  29. s[j++] = t[i];
  30. s[j] = '\0'; //关键封位
  31. }

memset(s, '\0', sizeof(s)) 和 s[j] = '\0' 任选一个写即可~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/563067
推荐阅读
相关标签
  

闽ICP备14008679号