[山东科技大学OJ]1216 Problem J: 编写函数:字符串的复制 之二 (Append Code)

 

Time Limit: 1 Sec Memory Limit: 2 MB

Submit: 10696 Solved: 4168

[Submit][Status]

Description

将输入的一个字符串s拷贝输出。

 

-----------------------------------------------------------------------------

 

编写一个函数str_cpy()求一个串的拷贝:

 

原型:char * str_cpy(char * t, char * s, int n);

 

功能:把串s的前n个字符复制到串t中,返回值是串t。如果串s的字符个数不足n个,则全部复制。

 

函数的调用格式见“Append Code”。

 

-----------------------------------------------------------------------------

 

Invalid Word(禁用单词)错误:在解决这个题目时,某些关键词是不允许被使用的。如果提交的程序中包含了下列的关键词之一,就会产生这个错误。

 

被禁用的头文件:string.h、stdlib.h。

被禁用的库函数:strcpy()、strncpy()、memcpy()等。

 

Input

输入为多行。每行为一个非负整数n和一个字符串s,两者用一个空格分隔。s的字符总数不超过100个。

 

Output

串s前n个字符的复制。

 

输出两遍,一遍是测试返回值,一遍是测试str。

 

Sample Input

2 Look!

5 I love china!

Sample Output

Lo

Lo

I lov

I lov

HINT

 str_cpy()的返回值参考标准库函数strcpy()、strstr()、strchr()的设计思路:返回指向目标串的指针。

 

Append Code

append.c,

[Submit][Status]

int main()

{

    int n;

    char s[MAX_STR_LEN], str[MAX_STR_LEN], *p;

    while(scanf("%d", &n) != EOF && getchar())

    {

        gets(s);

        p = str_cpy(str, s, n);

        puts(p);

        puts(str);

    }

    return 0;

}


#include <stdio.h>

#define MAX_STR_LEN 102

 

char * str_cpy(char * t, char * s, int n)

{

    int i=0,j;

    while(s[i]!='\0')

        i++;

    if(i<=n-1)

    {

        i=0;

        while(s[i]!='\0')

        {

            t[i]=s[i];

            i++;

        }

        t[i]='\0';

    }

    else

    {

        for(j=0;j<n;j++)

            t[j]=s[j];

        t[j]='\0';

    }

    return t;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值