如何减少c中的char指针以指向特定的第一个字符

问题描述

说我通过以下方式声明一个char指针:

char *str = "123456";

并且我想指向子字符串"123",我该如何减小指针,以使指针str指向123?

我知道我可以增加指针以指向字符串的后半部分:

// Now str will point to 456
str+=3;

但是使用递减str / --运算符对字符串的开头/对-=字符串的末尾进行修饰呢?

解决方法

我认为您已经以某种方式指向了字符串123...。唯一的区别是它在第6个字符之后的第7个字符处为空,因此得到字符串123456

如果您正在寻找“左”方法,只使用前三个字符,则可能需要看一下函数strncpy。另外,您也可以通过将第4个字符设置为null来终止字符串。无论如何,通过第二种方式,您正在更改原始内容,并且丢失了信息。