C语言中如何编写一个字符串复制函数,并在主函数中调用它。

作者&投稿:梅枝 (若有异议请与网页底部的电邮联系)
C语言:写一函数,将两个字符串连接~

会不会是系统测试的数据太长了?
改成s1[161],s2[81]试试?

这样就可以了,我已经在vc6通过调试运行了,不过要注意一点哦,虽然c语言里面没有string类型的变量,但是在c++里面有,所以为了防止不必要的麻烦,你这里的变量名字最好不要用string
#include
void stringcat(char str1[],char str2[],char str[])
{
int i,j;
for(i=0;str1[i]!='\0';i++)
str[i]=str1[i];
for(j=0;str2[j]!='\0';j++)
str[i+j]=str2[j];
str[i+j]='\0';
}
void main()
{
char s1[]="this is a test",s2[]=", test is a good thing.",s3[40];
stringcat(s1,s2,s3);
puts(s3);
}

#include<stdio.h>

char *custom_cpy(char *to,char *from);

int main(int argc,char *argv[]){

char *from = "i like c langanger";

char to[30];

char *ptr = custom_cpy(to,from);

printf("%s,%s
",ptr,to);

return 0;

}

char *custom_cpy(char *to,char *from){

if(to == NULL || from == NULL){

return NULL;

}   

char *p = to; 

for(;*from!='\0';from++,to++){

*to = *from;

}   

*to = '\0';//拷贝完毕之后一定要加一个结束符号

return p;

}

扩展资料:

字符串相关函数应用:

1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn。

例:concat(‘11’,'aa’)='11aa’;

2. 求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。

例:copy(‘abdag’,2,3)=’bda’;

3. 删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。

例:s:=’abcde’;delete(s,2,3);结果s:=’ae’;

4. 插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置

例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’;

5. 求字符串长度 length(s) 例:length(‘12abc’)=5;

参考资料:

百度百科-字符串



可以利用字符指针结合while循环的方式来编写字符串复制函数。


具体实现方法可以参考如下程序:

#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);  // 将字符串s1复制到s2中
    printf("%s", s2);  // 输出字符串s2,输出结果为abcd
}


/*字符串复制的函数和调用*/

#include "stdio.h"

char string(char a[],char b[]) //定义复制的字符串
{
int i; //计数
for(i=0;a[i-1]!='\0';i++) //复制
{
b[i] = a[i];
}
}
int main (void)
{
char a[]="12345asfd"; //字符串
char b[100];

string(a,b); //把a的字符串复制到b
printf("%s\n",b);//打印字符串
}

#include "stdio.h"
#include "stdlib.h"
int stringcopy(char *str1,char *str2);
main()
{
char str1[40],str2[20];
printf("输入第一个字符串");
scanf("%s",str1);
printf("输入第二个字符串");
scanf("%s",str2);
stringcopy(str1,str2);
getchar(); getchar();
return 0;
}
int stringcopy(char *str1,char *str2)
{
int i=0,j=0;
do
{
i++;
}while(*(str1+i)!='\0');
do
{
*(str1+i)=*(str2+j);
i++;j++;
}while(*(str2+j-1)!='\0'&&i<40);
if(i>=40)
printf("对不起,空间不够,不能复制!");
else
{
printf("%s\n",str1);

}
return 0;
}

void strcpy(char *des, const char *sour){ des = (char*)malloc(strlen(sour)+1); while(*sour != '\0') { *des = *sour; des++; sour++; } *des = '\0';}}


如何用C语言编写一个简单的程序!
1、鼠标左键双击c语言软件,打开,打开后界面如图,点击关闭即可 2、点击上方程序窗口左上角的文件,选择新建 3、在打开的窗口中选择文件,下边一般是第四个 c++Source file,输入文件名(hellw.c),一定要以“.c”为后缀结尾 4、进入编辑页面在,页面编辑源代码就可以 includestdio.h void main()...

如何用c语言编写一个程序,按照一定的顺序排列一些数字?
方法步骤如下:1.首先,定义一个结构,包括数值、排名和序号。2.定义结构数组变量d,保存所有整数信息。3.接下来,定义一个自定义函数来比较整数序列中任意两个整数的大小。4.定义一个自定义函数,比较整数序列中任意两个数字的序数大小。5.在主函数中,首先定义两个整数,并保存整数个数和排名计数...

如何用C语言编写一个1~99999数字的数列?
在C语言中,可以使用循环和条件语句来编写一个1~99999数字的数列。以下是一个简单的示例代码:在这个示例代码中,for循环用于遍历1到99999之间的所有数字,printf函数用于输出数字。%d是格式控制字符串,用于指定输出的整数类型。\\n是换行符,用于在输出数字后换行。运行这个程序,将会输出一个1~99999数字...

如何用C语言编写一个温度计?
程序如下:include <stdio.h> int main(){ int f;float c;printf("请输入一个华氏温度\\n");scanf_s("%d", &f);c = (float)(f - 32) * 5 \/ 9;printf("它的摄氏温度为:%.2f", c);} 如图:调试通过:

如何编写一个C语言程序,计算出最大数?
1、首先在Visual Studio 2019中新建一个C语言文件,如下图所示。2、接着导入如下图所示的库文件,所需要的数学计算函数都在里面。3、然后运用scanf函数来接收用户输入的三个数字,如下图所示。4、接着利用逐个比较的方式计算三个数中的最大值,如下图所示。5、运行编写的C语言文件,会弹出如下图...

如何用c语言编写一个程序?
include<stdio.h> int main(){ int i,m=0;for(i=2;i<=100;i+=2) m=m+i;printf("%d\\n",m);return 0;} 或 include int main(){ int i,sum=0;for(i=1;i<=50;i++){ sum=sum+2*i;} printf("2+4+6+…+98+100=%d\\n",sum);return 0;} ...

如何用c语言编写一个三角形的面积计算程序?
1、系统级编程:C语言被广泛用于开发操作系统、网络协议和嵌入式系统等底层软件。由于C语言能够直接访问硬件资源,它能够有效地控制系统的行为和资源管理。2、应用程序开发:C语言常用于开发各种应用程序,包括图形用户界面、游戏、数据库管理系统和办公软件等。C语言的执行效率高,能够提供高效的算法和数据...

如何用java语言编写一个程序?
mod、mean、find,分别用于产生随机整数、判断是否为偶数、计算平均数、寻找满足条件元素的下标。代码如下:clc;clear;n=randi([10,99],[1,20])%产生随机数,在10到99之间的均匀随机数 a=mean(n)%计算平均数 n(find(n

用c语言写一个爱心的程序
首行答案:可以使用C语言编写一个打印爱心的程序。C语言是一种通用的编程语言,它具有丰富的语法和库函数,可以实现各种复杂的功能。其中,打印图形是C语言的一个常见应用之一。下面是一个使用C语言编写的打印爱心的示例程序:c include int main() { int i, j, n;float x, y;printf("Enter the ...

c语言如何实现一个程序循环执行n次
在C语言中,可以使用for循环或while循环来实现一个程序循环执行n次。以下是两种方法的示例:使用for循环:首先定义一个整型变量i,用于计数。然后使用for循环,循环n次。每次循环中,i都会增加1。在循环体中,编写需要重复执行的代码。示例代码如下:使用while循环:首先定义一个整型变量i,用于计数。然后...

新青区13854131402: C语言中如何编写一个字符串复制函数,并在主函数中调用它. -
赖达苄星: #include<stdio.h> char *custom_cpy(char *to,char *from); int main(int argc,char *argv[]){ char *from = "i like c langanger"; char to[30]; char *ptr = custom_cpy(to,from); printf("%s,%s\n",ptr,to); return 0; } char *custom_cpy(char *to,char *from){ if(to ...

新青区13854131402: 请用C写一个字符串复制函数 -
赖达苄星: #include "stdio.h" char * c_nstrcpy(char *str1, char *str2, int n) { char* temp1; char* temp2; if (str1 == NULL || str2 == NULL) { return str2; } if (strlen(str1){ return str2; } temp1 = str1 + n; temp2 = str2; while (*temp1 !='\0') { *temp2++ = *temp1++; } *...

新青区13854131402: C语言:编写一个函数,实现把一字符串复制到一个字符数组中. -
赖达苄星: 展开全部# include 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)); }

新青区13854131402: C语言,使用函数实现字符串复制 -
赖达苄星: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20#include <stdio.h> #include <time.h>/*把从src地址开始的字符串复制到以dest开始的字符串中*/ char* strcopy (char* dest, char *src) {char* r = dest;while((*r++ = *src++)!='\0');return dest; }int ...

新青区13854131402: C语言中,如何编写一个字符串复制函数,并在主函数中调用它.
赖达苄星: #include <stdio.h> int my_strcpy(char* a,char* b) { int i = 0; if(a&&b) while( *a++ = *b++ ) i++; return i; } int main(void) { char* a = "123456"; char* b = "abcdef"; my_strcpy(a,b); printf(a); return 0; }

新青区13854131402: 用c语言写一个字符串拷贝函数 -
赖达苄星: *q='\0'; return *q; 所以函数返回的是'\0'.然后主函数里面你的printf打印输出的是函数的返回值而不是num这个数组,你把%s后面的参数改成num就行了.

新青区13854131402: C语言题目 用函数调用方式,实现字符串的复制. 要求如下 -
赖达苄星: #include void string_copy(char *str_to,const char *str_from) {while(*str_to++=*str_from++); } int main() {char array_str1[80],array_str2[80];gets(array_str1);string_copy(array_str2,array_str1);puts(array_str2);return 0; }

新青区13854131402: C语言中字符串的复制 -
赖达苄星: 要先加入头文件#include 里面的有个函数可以直接复制字符串 例如:strcpy(str2,str1) ; 把str1中的字符复制到str2中.

新青区13854131402: C语言编写一个函数,使输入的一个字符串复制到一个字符数组中,并在主函数中输入和输出字符串 -
赖达苄星: #include<stdio.h> #include<conio.h> char fun(char *a) { int i = 0, j = 0; char b[80]; while (a[i] != '\0' && a[i] == '*') { i++; } while (a[i] != '\0') { b[j] = a[i]; i++; j++; } i = 0; j = 0; while (b[j] != '\0') { a[i] = b[j]; i++; j++; } a[i] = '\0'; return a; } int main() { char a[80]; ...

新青区13854131402: C语言编程找一个字符串复制函数 -
赖达苄星: 并没有这样的函数吧.你先用一个循环把前面你要复制到s1里面的保存在一个字符串里面,然后把后面的复制到另外一个字符串里面.然后用strcpy函数将进行字符串的拷贝.思路是这样的 希望对你有用

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网