如何从char *的末尾删除字符?我有: “123456ABC”,我想:“123456”。谢谢!
答案 0 :(得分:6)
您可以将其中一个元素设置为空字符。假设您想将字符串“123456ABC”剪切为“123456”,您可以这样做,
str[6] = '\0';
但字符串的其余部分仍将为其分配内存。您可能想要做的是创建一个新字符串并将旧字符串的所需部分复制到其中,然后删除旧字符串。
答案 1 :(得分:1)
使用'\ 0'终止char *字符串。
char c[] = "123456ABC";
c[6] = '\0';
答案 2 :(得分:1)
如果您有所需剩余字符串的长度长度,请设置 str [length] ='\ 0'并执行:
// Assuming str was obtained through malloc/realloc functions.
str = realloc(str, sizeof(char)*(1+length));
这样可以缩短概念字符串及其使用的内存,以防您想要优化!
编辑:感谢Jim Balter提出原始提案的问题!