1216 编写函数:字符串的复制 之二 (Append Code)
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()的设计思路:返回指向目标串的指针。
#include<stdio.h>
#define MAX_STR_LEN 101
char * str_cpy(char * t, char * s, int n)
{
int i,j;
i=0;
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;
}
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;
}