Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2538921
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2010-08-18 11:07:52

    有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
    我们可以通过函数传递两个字符串的指针,然后读取一个指定位置的字符,对其进行赋值判断赋值后字符串是否为'\0',不是'\0'则继续循环复制,直到出现'\0'为止。编写代码如下:
 

#include <stdio.h>
#define N 300

void mystrcpy(char *, char *, int);
int mystrlen(char *);
int main(int argc, char *argv[])
{
    char ch1[N],ch2[N];
    char *p_ch1,*p_ch2;
    int idx,len;
    p_ch1 = ch1;
    p_ch2 = ch2;
    printf("please input source string:\n");
    gets(ch1);
    printf("please input the index:");
    scanf("%d",&idx);
    len = mystrlen(p_ch1);
    while (idx < 0 || idx > len )
    {
          printf("your input index value is error,\nthe index >= 0 and index < %d,please reinput index value:",len);
          scanf("%d",&idx);
    }
    mystrcpy(p_ch1,p_ch2,idx);
    printf("the new string is : '%s'\n",p_ch2);
    system("pause");
    return 0;
}

void mystrcpy(char *from, char *to,int idx)
{
     while (*to++ = from[idx++]);
}

int mystrlen(char *string)
{
    int i = 0;
    while (*string++)
    {
          i++;
    }
    return i;
}


阅读(4678) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~