189 8069 5689

C语言中拼接函数 c语言 拼接

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

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

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、网站设计、察布查尔锡伯网络推广、小程序定制开发、察布查尔锡伯网络营销、察布查尔锡伯企业策划、察布查尔锡伯品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供察布查尔锡伯建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

#includestdio.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

*/

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

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

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

#includestdio.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\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语言中字符串拼接函数问题

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


网站栏目:C语言中拼接函数 c语言 拼接
文章位置:http://cdxtjz.com/article/dopegcc.html

其他资讯