Bla*_*ear 22
将3添加到指针:
char *foo = "abcdef";
foo += 3;
printf("%s", foo);
Run Code Online (Sandbox Code Playgroud)
将打印"def"
Jon*_*ler 13
void chopN(char *str, size_t n)
{
assert(n != 0 && str != 0);
size_t len = strlen(str);
if (n > len)
return; // Or: n = len;
memmove(str, str+n, len - n + 1);
}
Run Code Online (Sandbox Code Playgroud)
另一种设计:
size_t chopN(char *str, size_t n)
{
assert(n != 0 && str != 0);
size_t len = strlen(str);
if (n > len)
n = len;
memmove(str, str+n, len - n + 1);
return(len - n);
}
Run Code Online (Sandbox Code Playgroud)
例如,如果你有
char a[] = "123456";
Run Code Online (Sandbox Code Playgroud)
删除前3个字符的最简单方法是:
char *b = a + 3; // the same as to write `char *b = &a[3]`
Run Code Online (Sandbox Code Playgroud)
b将包含"456"
但在一般情况下,您还应确保不超过字符串长度