问题描述
说我通过以下方式声明一个char指针:
char *str = "123456";
并且我想指向子字符串"123"
,我该如何减小指针,以使指针str
指向123?
我知道我可以增加指针以指向字符串的后半部分:
// Now str will point to 456
str+=3;
但是使用递减str
/ --
运算符对字符串的开头/对-=
字符串的末尾进行修饰呢?
解决方法
我认为您已经以某种方式指向了字符串123...。唯一的区别是它在第6个字符之后的第7个字符处为空,因此得到字符串123456
如果您正在寻找“左”方法,只使用前三个字符,则可能需要看一下函数strncpy。另外,您也可以通过将第4个字符设置为null来终止字符串。无论如何,通过第二种方式,您正在更改原始内容,并且丢失了信息。