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

How do I decrement a char pointer in c to point to specifc first characters

假设我用以下方式声明了一个字符指针:

char *str = "123456";

而我想指向子串"123",如何递减指针使指针str指向123?

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

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

但是 string/trimming 的开头和 str 字符串的结尾使用递减 --/-= 运算符,这可能吗?

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

如果您正在寻找一种“左”方法,只取前 3 个字符,您可能需要查看函数 strncpy。或者,您也可以通过将第 4 个字符置为空来终止字符串。无论如何,在第二种方式中,您正在更改您拥有的原始内容并且您正在丢失信息。