C语言编写函数:字符串的复制

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 Input2 Look!5 I love china!Sample OutputLoLoI lovI lovHINTstr_cpy()的返回值参考标准库函数strcpy()、strstr()、strchr()的设计思路:返回指向目标串的指针。Append Codeappend.c, 我想问怎么在我原来的程序基础上作对这道题。。。下面是我原来的程序:::: #include<stdio.h> #define MAX_STR_LEN 100 char * str_cpy(char * t, char * s) { int i=0,n; while(*s!='\0') { *t=*s; t++; s++; i++; } *t=0; for (n=i;n>0;n--) t--; return t; 注意:主函数是系统给定的,不可自己书写。

你这个拷贝函数里怎么没有主函数里的n来判断哪些拷贝过来?
我加了个n,把原来的n改成了m,再加了两条语句,其他的没动,代码如下:
#include<stdio.h>
#define
MAX_STR_LEN
100
char
*
str_cpy(int
n,char
*
t,
char
*
s)
{
int
i=0,m;
while(*s!='\0')
{
*t=*s;
t++;
s++;
i++;
}
for
(m=i;m>0;m--)
{
t--;
if(m>n)
*t='\0';
//把超过长度n的都变成结束符'\0'
}
return
t;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言中如何编写一个字符串复制函数,并在主函数中调用它。
include<stdio.h>void str_copy(char *str1, char *str2) \/\/ 字符串复制函数{ while(*str1++ = *str2++); \/\/ 将字符串str2中的每个字符逐个复制到str1中,直到遇到字符串结束字符'\\0'}void main(){ char s1[] = "abcd"; char s2[5]; str_copy(s2, s1); \/\/...

c语言strcpy的用法是什么?
strcpy函数即stringcopy(字符串复制)的缩写,具体用法如下:C库函数char*strcpy(char*dest,constchar*src)把src所指向的字符串复制到dest。参数dest--指向用于存储复制内容的目标数组,参数src--要复制的字符串,编译并运行上面的程序,这将产生以下结果:最终的目标字符串:Thisisrunoob.com。当程...

C库<string.h>copy函数的实现
1. `strcpy`:复制字符串。其原型为`char * strcpy(char * destination, const char * source)`,将`src`指向的字符串复制到`dest`指向的数组中,包括结束符`'\\0'`。复制时需确保`dest`数组至少比`src`长一个字符,并且`dest`与`src`不应在内存中重叠。返回值为`destination`。2. `strncpy`...

...包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制...
s1); \/\/这里用strlen(s1)可以得到实际字符串长度 scanf("%d",&m); printf("m的值为:%d",m); copy(s1,s2,m); printf("result:%s\\n",s2); return 0;}void copy(

C语言:编写一个函数,实现把一字符串复制到一个字符数组中。
include <stdio.h> void strcopy( char str1[], char str2[]){ int i;for(i=0;str[i]!= '\\0';i++){ str1[i]=str2[i];s1[i]='\\0';} } void main(){char str1[20];str2[20];scanf("%s%s",str1,str2);printf("%s",strcopy(str1,str2));} ...

C语言中,用指针实现字符串的拷贝,不能用strcpy,用自定义函数实现该功能...
\/*,使用指针一定要先用查找函数判断是否为空,防止不小心将空地址传递*\/ while(*dest++=*src++){ ;} return p;\/*返回的ret为字符串则用char,且为地址*\/ } int main(){ char arr1[]="Hello world!";char arr2[20];char*ret=my_strcpy(arr2,arr1);printf("%s",ret);\/*打印出的...

c语言自定义函数实现字符串的拼接、拷贝、比较大小、求字符串长度等四...
void s_trcat(char *s1,char *s2);\/\/连接两个字符串 void s_trcpy(char *s1,char *s2);\/\/字符串s2复制给字符串s1 int s_trcmp(char *s1,char *s2);\/\/两个字符串比较大小 int s_trlen(char *s);\/\/计算一个字符串的长度 int main(){ char s1[11]="12345", s2[11]="ABCDE"...

c语言指针小程序的问题,就是字符串的复制,如果2个字符串长度不等。
void copy_string (char from[],char to[]);char a[80]="I am a teacher."; \/\/最好直接分配空间,使用指针变量赋值,\/\/容易出现非法操作关闭的现象,因为字符串常量所在区间为常量区间 char b[]="I am a good student.";printf("string a=%s\\nstring b=%s\\n",a,b);printf("copy ...

C语言问题:写一个函数,将一个字符串中的元音字母复制到另一字符串后面...
int copy(char c){char d = c;if(d=='a'||d=='A'||d=='e'||d=='E'||d=='i'||d=='I'||d=='o'||d=='O'||d=='u'||d=='U')return(d);elsereturn 0;}int main(){int copy(char c);char a,b;while((a=getchar())!='\\n'){b=copy(a);if(b != 0...

自定义c语言字符串拷贝函数strcpy
\/ 原 串 : Windows Application 目标串 : Windows Application 请按任意键继续. . .\/ include <stdio.h> include <stdlib.h> char *strcopy(char ds[], char ss[]) { int i = 0;while(ds[i] = ss[i]) ++i;return ds;} int main() { char s[] = "Windows Application";char...

相似回答