linux c 字符串处理

在C语言中经常需要处理内存问题,特别是在字符串操作时特别容易出错。

下面分析几种常见问题,都是经常引发内存错误或者Segmentation fault这些隐形错误。

1.比较几种字符串

	char a[] = "1234";//可更改字符串,有占5字节,结尾为‘\0'
	char a[4] = "1234";//可更改字符串,有占4字节;
	char* a = "1234";//不可更改字符串,有占5字节,结尾为‘\0'
	char* a = (char *) malloc(4);//可更改字符串,有占4字节;

2.字符串函数使用.

常见容易出问题的有strcpy,strncpy,strcat,strncat;理解了如上区别后可以知道,

这些函数的第一个参数都必须使用确定内存数量的字符串来承载,这里还会

涉及一些初始化问题,如下例子:

	char cmd[10];
	char cmdt[3] = "123";
	strcat(cmd,cmdt);

运行结果将会时cmd[0]将会是一个乱码,原因时初始化时cmd[0]是一个'\0',拼接时与cmdt[0]‘拼’起来了。

3.字符串转换

其他类型转字符串转换主要的主要用的一个神奇的函数:sprintf();

使用方法很简单,来个简单的例子:

	char c = 'a';
	int i = '1';
	char s[4] ;
	sprintf(s,"%c%d",c,i);


运行的结果时s[4] = "a1";这里也不用担心s初始化长度的影响,只要够大,有多少内容就多长,这里的strlen(s)=2;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lclitlife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值