Linux下的C语言编程——从指定位置复制

来源:互联网 发布:淘宝女装黑色毛衣 编辑:程序博客网 时间:2024/06/06 20:41

今天我在学习指针的时候,练习了一个题目现在分享给大家。

题目的要求是:有一个字符串,包含n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成为另一个字符串。

其实这个题目用指针比较好实现,比如设指针为*p,则从第m个开始复制就是 b[i] = *(p+n-1+i)。

下面我附上我的代码,如有不妥之处请大家指正!

#include <stdio.h>mygets(char a[]){int i;i = 0;while((a[i] = getchar()) != '\n'){i++;}a[i] = '\0';}int Strlen(const char *str){int len;len = 0;while(*str++){++len;}return len;}void n_copy(char a[20],char b[20],int n,int m){char *p;int i;p = a;for(i = 0; i + (n-1) < m; i++){b[i] = *(p+n-1+i);}b[i] = '\0';}int main(){char a[20];char b[20];int n;int m;printf("please input the string!\n");mygets(a);printf("please input where you want to copy!\n");scanf("%d",&n);m = Strlen(a);n_copy(a,b,n,m);printf("%s\n",b);    return 0;}

下面附上我的运行图


0 0
原创粉丝点击