当前位置:首页 » 编程语言 » c语言实现拼接函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言实现拼接函数

发布时间: 2022-12-31 04:00:22

1. c语言中字符串拼接函数问题

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

2. 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"

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

#include<stdio.h>

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

puts(s1);

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

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

puts(x1);

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

if(n==0)

printf("str1与str2相同 ");

if(n==1)

printf("str1大于str2 ");

if(n==-1)

printf("str1小于str2 ");

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

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

}

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

{

char *p=s1;

char *q=s2;

while(*p)

p++;

while(*q)

{

*p=*q;

p++;

q++;

}

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

}

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

{

char *p=s1;

char *q=s2;

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

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

}

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!=''&&*q!='')

{

if(*p>*q)

return 1;

if(*p<*q)

return -1;

p++;

q++;

}

if(len1==len2)

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

if(len1>len2)

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

if(len1<len2)

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

}

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

{

char *p=s;

int len=0;

while(*p++)

len++;

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

}

4. C语言中怎样设计一个函数实现两个字符串的连接

char
*
strcat(char
*s,
const
char
*append)
{
//将s所指向的字符串的首地址保存下来,以便使用
char
*save
=
s;
//将s所指向的字符串的首指针移至串尾处,s指针指向的字符元素为'\0'
for
(;
*s;
++s);
//将append所指的字符串的元素复制到s所指向的字符串尾部,直至遇到'\0'
while
((*s++
=
*append++)
!=
'\0');
//返回追加后的字符串首地址
return(save);
}

5. C语言实现两个字符串的拼接

for(;*s!='\0';s++) *s=*s;-->为什么一定要有这一句? 不是非要这句,而是要上面一句for(;*s!='\0';s++);这是将本函数中s的地址移到源s(主函数中)的末尾(是结束符的地方)。 这样才能在后面拼接t。 没有*s=*s只要有分号就可以。

6. C语言中怎样设计一个函数实现两个字符串的连接

1)简单来,直接用 strcat 函数,需要包含头文件 string.h

2)自己实现的话也不麻烦,但是要考虑一些细节:
假设两个字符串指针为 str1,str2 ,现在要讲 str1 和 str2 连接成一个新的字符串。
a.考虑指针 str1,str2 是否非空
b.如果将str2的内容直接连接到str1的末尾,要考虑str1是否有足够的剩余空间来放置连接上的str2的内容。
如果用一个新的内存空间来保存str1和str2的连接结果,需要动态分配内存空间。

7. C语言中自建字符串拼接函数,结果错误!!求指教

你自己写的strcat函数在第一次while中一直p++到了''的后一位(因为p++是先赋值再加1),所有在printf的时候遇到''就停止打印了,后边的字符串就显示不出来了。应该在第一个while下边写一个p--;让p指针指向''

8. 用C语言编程:编写一个函数,将两个字符串连接起来

1、新建一个工程和.c文件,输入头文件和主函数。

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

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

#include<stdio.h>
voidmystrcat(chara[],charb[]){//把a和b拼接起来
inti=0,j=0;
while(a[i++]!='');
i--;
while(b[j]!=''){
a[i++]=b[j++];
}
a[i]='';
}
intmain()
{
chara[100],b[100];
gets(a);
gets(b);
mystrcat(a,b);
puts(a);
return0;
}
/*
运行结果:
abc
def
abcdef
*/

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

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

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\n",cat);
return 0;
}