字符串中一个常出错的地方。

char StrDst[20] = "hello";   
相当于  
char StrDst[20];  
strcpy(StrDst, "hello");  
在栈上分配一个数组StrDst,将常量字符串"hello"的内容复制给StrDst数组  

char *StrDst = "hello";   
在栈上分配了一个指针S
char * StrCat(char *StrDst,char *StrSrc);

#include<stdio.h>
int main(void)
{
	char StrDst[20] = "hello ";
	//char *StrDst = "hello ";
 
	char *StrSrc = "world";
	printf("StrDst is %s\n", StrDst);
	printf("StrSrc is %s\n", StrSrc);

	printf("StrDst is %s\n", StrCat(StrDst, StrSrc));
}


char * StrCat(char *StrDst,char *StrSrc)
{
	char * address = StrDst;
	while(*StrDst)
		StrDst++;
	while(*StrSrc)
	{
		*StrDst++ = *StrSrc++;
	}
	*StrDst = '\0';
	return address;
}

trDst,将其指向常量字符串"hello"的首地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值