c - 删除字符串末尾的空终止符

标签 c

我试图从输入中扫描一个字符,我已经尝试了所有方法,scanf() getline() fgets()但都包含空终止符'\0'最后这对我来说是不想要的。我怎样才能剥掉它?我已经尝试过了

char *p=strtok(string,'\0\')

但是没有成功。我该怎么做? 我正在使用 gin getline() 扫描字符串到一个 string 数组中,它工作正常,我想输入一个“needle”,我也尝试使用 getline() scanf ,而不是使用 strstr 来查找匹配,但“\0”导致不匹配

最佳答案

您询问如何从字符串末尾删除 NUL 终止符。您可以通过用其他内容覆盖它来做到这一点(例如,字母“a”):

str[strlen(str)] = 'a';

请注意,C 没有办法从数组(包括字符串,它是 char 数组)中“删除”某些内容;数组元素始终存在(直到整个数组被销毁),并且只能用其他值覆盖它们。

关于c - 删除字符串末尾的空终止符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34143181/

相关文章:

c - 无法在c中打印f()char数组

c++ - 你知道学习运算符优先级和结合性的心理装置或技巧吗?

c - 使用 -std=c99 编译时,我需要使用 -pedantic 还是 -ansi?

将 uint32 浮点表示形式转换为 uint8

c - 在头文件中使用 "EXTERN"关键字,而其定义在源文件中

c - 数组的最大索引及其在平台上的长度

c - C 的最终 CRC

javascript - PHP从textarea读取文本,使用convert_uuencode并将其写入另一个textarea

C - 结构错误内部的指针(?)

c - 仅使用指针对整数数组进行排序时的 "for"循环