c语言比拼接函数 c语言数组拼接函数

c语言自定义函数实现字符串的拼接、拷贝、比较大小、求字符串长度等四个功能

#includestdio.h

创新互联是一家专业提供百色企业网站建设,专注与成都做网站、网站制作、H5网站设计、小程序制作等业务。10年已为百色众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

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";

char x1[11]="12345",x2[11]="SSSKK";

char str1[11]="ABCD",str2[11]="ACB";

char s[11]="ABCDEF";

int n,len;

s_trcat(s1,s2);//拼接s1,s2

printf("拼接s1,s2,输出s1\n");

puts(s1);

s_trcpy(x1,x2);//将x2的内容复制给x1

printf("将x2的内容复制给x1,输出x1\n");

puts(x1);

n=s_trcmp(str1,str2);//比较str1与str2大小,返回一个整数,代表比较的结果

if(n==0)

printf("str1与str2相同\n");

if(n==1)

printf("str1大于str2\n");

if(n==-1)

printf("str1小于str2\n");

len=s_trlen(s);//计算字符串s的长度,并返回一个整数(字符串长度),

printf("字符串s的长度:%d\n",len);

}

void s_trcat(char *s1,char *s2)//连接两个字符串

{

char *p=s1;

char *q=s2;

while(*p)

p++;

while(*q)

{

*p=*q;

p++;

q++;

}

*p='\0';//给新字符串尾部加个结束符

}

void s_trcpy(char *s1,char *s2)//字符串s2复制给字符串s1

{

char *p=s1;

char *q=s2;

while(*p++=*q++);

*p='\0';//给新字符串尾部加个结束符

}

int s_trcmp(char *s1,char *s2)//两个字符串比较大小

{

char *p=s1;

char *q=s2;

int len1=0,len2=0;

while(*p++)

len1++;

while(*q++)

len2++;

p=s1,q=s2;

while(*p!='\0'*q!='\0')

{

if(*p*q)

return 1;

if(*p*q)

return -1;

p++;

q++;

}

if(len1==len2)

return 0;//返回0,两个字符串相同

if(len1len2)

return 1;//返回1,前大于后

if(len1len2)

return -1;//返回-1,前小于后

}

int s_trlen(char *s)//计算一个字符串的长度

{

char *p=s;

int len=0;

while(*p++)

len++;

return len;//返回字符串长度

}

C语言指针拼接函数问题,求教大神

strcat(p1+2,p2+1)

p1+2,也就是p1向后移动两个字符位置的指针作为一个字符串的起始指针,即字符串为"cd"

p2+1,也就是p2向后移动一个字符位置的指针作为一个字符串的起始指针,即字符串为"BCD"

该函数调用将p1+2作为目的串,p2+1作为源串,将后者连接到前者的后面,则连接后为"cdBCD"。

strcpy(str+2, .....)

该函数调用将 后面的串"cdBCD"复制到前者str+2,即"z"的位置,这是一种覆盖复制。则'z'被'c'覆盖(原来前面的"xy"保留了下来),后面接着放了"cBCD";

最后输出的是str,也就是从str的最开始输出,故结果为"xycdBCD"

c语言指针实现字符拼接函数strcat

对于strcat,其格式为

char *strcat(char *a, char *b);

其功能为,将字符串b拼接到a的尾部,并将结果字符串返回。

所以,实现该函数的思路为:

1 找到字符串a的结尾;

2 将b的所有字符复制到a尾部的空间中,到\0为止。

需要注意的是,复制的结果要包含b的结束符。

代码如下:

char *strcat(char *a, char *b)

{

char *p = a;

while(*p) p ++;

//当*p为\0时退出,即查找到a的结尾。

do

{

*p++ = *b;//将b中的每个字符复制到p中。

if(*b == '\0')break;//遇到结束符退出。

b++;//移动指针b的位置。

}while(1);

return a;//返回结果字符串首地址。

}

(c语言)拼接字符

C语言中拼接字符串可以使用strcat函数。

1、strcat()函数 ,即string catenate的缩写

原型:extern char *strcat(char *dest,char *src);

用法:#include string.h

功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

2、举例:

#include stdio.h

#include string.h

int main(){

char d[20]="字符串1"; //第一个字符串

char *s=" 字符串2";  //第二个字符串

strcat(d,s);    //拼接两个字符串,结果保存在第一个字符串当中

printf("%s",d); //输出拼接结果:"字符串1字符串2"

getchar();

return 0;

}

C语言有没有数组拼接的函数

数组里面貌似没有,只有字符串拼接,不过这中简单的变换你完全可以自己写个函数嘛

C语言中字符串拼接函数问题

不是说一定不行,也有可能可以。像你这种定义就有可能可以,因为如果s1,s2 在分配内存时就是连续的,那么就是越界了,你这条打印出来也会对,因为他没有越界到别的地方,都是字符串空间,你要同时把s2也打印出来,看看s2有没有被改变。c并不检测越界,只有在动行时有可能会出现执行错误。


标题名称:c语言比拼接函数 c语言数组拼接函数
网站网址:http://azwzsj.com/article/doodjde.html