用C语言:写一个函数,将两个字符串连接

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

1、实际上就是实现strcat这个字符串库函数,在vc自带的crt源码或者linux平台的glibc库中都有strcat的源码,自己可以查阅参考,看看库开发者是如何写代码的,对于学习C语言非常有用。
2、示例
#include

char *strcat(char *str1, char *str2)
{
if((str1==NULL)||(str2==NULL)) throw "Invalide arguments!";
char *pt = str1;
while(*str1!='\0') str1++;
while(*str2!='\0') *str1++ = *str2++;
*str1 = '\0';
return pt;
}

int main()
{
char a[]= "markyuan";
char b[]= "yyyyy";
char *cat = strcat(a,b);
printf("%s
",cat);
return 0;
}

选自:《程序逻辑及C语言》,本视频为字符串的第04小节。主要讲解四个常用的字符串处理函数,包括:求字符串的长度、字符串的赋值、字符串的连接已经字符串大小的比较。具体有案例讲解。

字符串连接:即将字符串b复制到另一个字符a的末尾,并且字符串a需要有足够的空间容纳字符串a和字符串b。

#include<stdio.h>
void mystrcat(char a[],char b[]){//把a和b拼接起来 
int i=0,j=0;
while(a[i++]!='\0'); 
i--;
while(b[j]!='\0'){ 
a[i++]=b[j++];

a[i]='\0'; 
}
int main()
{
char a[100],b[100];
gets(a);
gets(b);
mystrcat(a,b);
puts(a); 
return 0;
}
/*
运行结果:
abc
def
abcdef
*/


楼上的人们说得没错,你可以调用库函数的,这个就自己动手查查啦,非要自己写的话,下面提供一个:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char * cat(char * str1, char * str2)
{
int len1, len2;
char * p;

len1 = strlen(str1);
len2 = strlen(str2);
char * str = (char *) malloc((len1+len2+1)*sizeof(*str));
strcpy(str, str1);
p = str + strlen(str1);
strcpy(p, str2);
return str;
}

int
main(void)
{
char * str = (char *) malloc(1024*sizeof(*str));
char * s = (char *) malloc(1024*sizeof(*s));
gets(str);
gets(s);
printf( "%s\n", cat(str, s) );

return 0;
}

楼主,要学会查库,库里面提供了很多有用的函数,不是什么都要自己写的。我上面的程序也调用了strcpy。不然就又得自己搞个循环赋值。

#include<stdio.h>

#include<string.h> 

main()

{

char s1[100],s2[100];

printf("Input string1:");

scanf("%s",s1);

printf("
input string2:") ;

scanf("%s",s2);

printf("
The new string is %s",strcat(s1,s2));

}

运行结果



char* my_strcat(char *str1, char *str2)
{
int i=0, j=0;
if (!str1 && !str2)
return NULL;
else if (!str1)
return str2;
else if (!str2)
return str1;
else
{
while(str1[i] != '\0')
{
i++;
}
for (; str2[j] != '\0'; j++)
{
str1[i+j] = str2[j];
}
str1[i+j] = '\0';
return str1;
}
}

选自:《程序逻辑及C语言》,本视频为字符串的第04小节。主要讲解四个常用的字符串处理函数,包括:求字符串的长度、字符串的赋值、字符串的连接已经字符串大小的比较。具体有案例讲解。




C语言问题。编写一个函数:int isprime(int n)用于判断一个整数是否为...
int isPrime(int num) { int divisor = 3;int testLimit = num;if (num < 2)return 0;if ( num < 4 )return 1;if (num % 2 == 0)return 0;while ( testLimit >= divisor ){ if ( num % divisor == 0 )return 0;testLimit = num \/ divisor;divisor += 2;} return 1;} ...

c语言 编写一个函数,来判断一个数是否是回文数。(回文数就是像12321...
代码:int IsEchoNum(int num){ int tmp=0;for(int n=num;n;n\/=10)tmp=tmp*10+n%10;return tmp==num;} int main(int argc,char*argv[]){ int num=12321;printf("%d%d\\n",num,IsEchoNum(num));}

用C语言写一个函数,要求输入为1时,输出为2;输入为2时,输出为1.
include<stdio.h> main(){ int x;scanf("%d",&x);printf("%d\\n",(x==1)?2:1);}

C语言题 编写一个主函数,计算并输出表达式1+2(平方)3(平方)+...+10...
include<stdio.h> main(){int i,sum=0;for(i=2;i<=10;i++){sum+=i*i;} printf("%d",1+sum);}

C语言:编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字...
int* sum(char *ch,int sum[4]);用一个长度为4的一维数组来统计各类字符的个数;同样int* 表示返回一个整形指针;你应该这样调用sum()函数;p=sum(ch,sum);(当然你之前要,在main()里定义一个整形指针接受sum()的返回值),把sum[4]={0}初始化全部为0,),用p[0],p[1],p[2],p[3...

c语言编写函数,将一个字符串str中指定的字符ch删去,函数原型是void del...
printf("输入一个字符,使用getchar函数接收\\n")。 \/*提示用户输入一个字符*\/ c3=getchar(); \/*使用getchar()函数接收*\/。6、输出结果:printf("\\n输入的这三个字符是:\\n"); \/*输出一行空行*\/ \/*将这些字符输出*\/ putchar(c1); putchar(c2);putchar(c3);printf("\\n");。

c语言 编写一个判断是否为水仙花数的函数,并通过调用该函数打印输出所有...
i,n=0,sum=0,cnt=0;n=number;while(n){ cnt++;n\/=10;} n=number;while(n){ i=n%10;sum+=(int)pow(i,cnt);n\/=10;} if(sum==number)return 1;else return 0;} void PrintN(int m,int n){ int i;for(i=m+1;i<n;i++)if(narcissistic(i))printf("%d\\n",i);} ...

C语言如何求一个数的次方?
① 使用内置函数pow:pow函数是C语言标准库中的一个内置函数,用于计算一个数的次方。其原型:double pow(double base, double exponent)。其中base是要计算次方的基数,exponent是要计算的指数。例如,以下代码计算5的3次方:② 自定义函数:如果没有如果没有提供内置的pow函数,也可以自己编写一个自...

5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)。_百度...
(*b) = temp;}以上代码运行结果如下:以下代码实现了使用宏定义作为模板,声明不同类型交换函数的功能,以下以声明double和float为例:include <stdio.h> \/\/ 声明一个函数代码模板,逻辑参考 swap(int* a, int* b)#define DEF_SWAP_FUNC(Type) void swap_##Type(Type* a, Type* b) \\{ \\...

C语言:写一个程序,判断某一年是否为闰年。 用函数的调用来写。
1、首先在VS中准备一个Console程序。2、然后获取当前时间。3、然后在Datetime类中有一个IsLeapYear方法用来判断闰年。4、IsLeapYear得到的是布尔类型的值。5、接着点击运行按钮,如下图所示。6、就可以看到当前的年是不是闰年了。

班玛县17522575701: 用C语言写出一函数,将两个字符串连接,该怎么写 -
謇贡贝唐: void concat(char *s1, int size1, char *s2, int size2, char *sout) {int i;for (i = 0; i < size1; ++i)sout[i] = s1[i];for (i = 0; i < size2; ++i)sout[i + size1] = s2[i];sout[i] = '\0'; } 示例使用方法: char *s1 = "ABCD"; char *s2 = "12345"; char sout[100];...

班玛县17522575701: 用C语言写一个函数,将两个字符串连接. -
謇贡贝唐: 1、实际上就是实现抄strcat这个字符串库函数,在vc自带的crt源码或者linux平台的glibc库中都有strcat的源码,自己可以查阅参考,看看库开发者是如何zd写代码的,对于学习C语言非常有用. 2、示例 #include <stdio.h>char *strcat(char *str1, ...

班玛县17522575701: 用c语言编写一个将两个字符串连接起来函数两个字符串由主函数输入, 连接后的字符串也由主函数输出. -
謇贡贝唐: #include<stdio.h> void main() {void con(char sting1[],char sting2[],char sting3[]);char s1[20],s2[20],s3[40]; printf("Input sting1: ");scanf("%s",s1);printf("Input sting2: ");scanf("%s",s2);con(s1,s2,s3);printf("%s\n",s3); } void con(...

班玛县17522575701: 用C语言编程:编写一个函数,将两个字符串连接起来 -
謇贡贝唐: 一:char* catStr(char str1[],char str2[]) { strcat(str1,str2); return str1;} 二:char* catStr(char str1[],char str2[]) { int i=0; int lenstr1=0; lenstr=strlen(str1) for(i;i { str1[lenstr++]=str2[1]; } return str1;}

班玛县17522575701: 在C语言编程中,如何利用调用函数来把两个字符串连接起来? -
謇贡贝唐: strcat(a,b)把字符串b连到字符串a后面 举例; strcat("wo","niu");//输出woniu

班玛县17522575701: C语言编程:编写一个将两个字符串进行连接的函数. -
謇贡贝唐: #include void lianjie(char a[],char b[]); { strcat(a,b); printf("%s",a); } main() { char s[40],c[20]; printf("qing shuru 1 zifushuzu:\n"); gets(s); printf("qing shuru 2 zifushuzu:\n") gets(c); lianjie(s,c); }

班玛县17522575701: 用C语言:写一个函数,将两个字符串连接
謇贡贝唐: \);):",s1):如mtcat所说:编程实现strcat的功能 void main() { char s1[80];n",j=0.h>0'0',直接用strcat函数 方法二;stdio!=' while((s1[i++]=s2[j++]); gets(s2):%s\;input two strings!=' while(s1[i]; int i=0; gets(s1);result; printf(" 方法一;\) i++,s2[80]; puts("#include<

班玛县17522575701: c语言 设计函数 连接两个字符串 -
謇贡贝唐: /*! \brief 连接两个字符串 * \param dst 字符串dst地址,也是连接后字符串的存储地址 * \param src 字符串2地址 * \note 必须保证dst剩余的空间能容纳字符串src,否则,调用结果未定义 */#include void join_string(char *dst,const char *src) { int src_...

班玛县17522575701: c语言 写一个函数能将两个字符串连接,在主函数中调用 -
謇贡贝唐: 这样就可以了,我已经在vc6通过调试运行了,不过要注意一点哦,虽然c语言里面没有string类型的变量,但是在c++里面有,所以为了防止不必要的麻烦,你这里的变量名字最好不要用string#include<stdio.h> void stringcat(char str1[],char str2[],...

班玛县17522575701: 编写一个函数,将两个字符串连接起来.C语言题目 急急急!!!!!!!!!!在线等麻烦写完整的,我用的是win - tc. -
謇贡贝唐: char *concat(char *source,char *destin) { while(*source); do{ *source++=*destin; }while(*destin++); }

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