C++ 删除不需要的字符
我们已经创建了一个固定长度的字符数组。现在,我们在数组中写一个单词或一个句子。但是,这个单词句子的长度比字符数组的长度短,因此当我们使用printf函数打印消息时,也会打印一些垃圾字符。我们希望删除所有这些字符,即使写入的消息长度是可变的。C++ 删除不需要的字符,c++,C++,我们已经创建了一个固定长度的字符数组。现在,我们在数组中写一个单词或一个句子。但是,这个单词句子的长度比字符数组的长度短,因此当我们使用printf函数打印消息时,也会打印一些垃圾字符。我们希望删除所有这些字符,即使写入的消息长度是可变的。 谢谢大家! 如果您不希望使用固定数组大小,您是否考虑过不使用该大小?您可以使用char*来代替,并动态分配它的大小 如果出于某种原因需要固定大小,我能想到的唯一解决方案是在单独的变量中跟踪单词的长度,然后只打印前n个字符。据我所知,无法确定哪些字符有效,哪些
谢谢大家! 如果您不希望使用固定数组大小,您是否考虑过不使用该大小?您可以使用
char*
来代替,并动态分配它的大小
如果出于某种原因需要固定大小,我能想到的唯一解决方案是在单独的变量中跟踪单词的长度,然后只打印前n个字符。据我所知,无法确定哪些字符有效,哪些字符不在数组中。如果您不想使用固定数组大小,您是否考虑过不使用固定数组大小?您可以使用
char*
来代替,并动态分配它的大小
如果出于某种原因需要固定大小,我能想到的唯一解决方案是在单独的变量中跟踪单词的长度,然后只打印前n个字符。据我所知,无法确定哪些字符是有效的,哪些不在数组中。C字符串以NUL字节(
'\0'
)终止。如果没有此终止符,则printf
不知道字符串已结束。解决方法是在数组中的单词后放置一个\0
注意:学习使用哪一个为您管理此操作。C字符串以NUL字节(
'\0'
)结尾。如果没有此终止符,则printf
不知道字符串已结束。解决方法是在数组中的单词后放置一个\0
注意:学习使用哪一个为您管理此内容。除此之外,如果您的缓冲区应该只是一个字节数组而不是(以null结尾的)字符串,那么您可以使用fwrite而不是fprintf来转储内容
但总的来说,我同意其他人的看法,使用std::string可能更好。除此之外,如果您的缓冲区应该只是一个字节数组而不是(以null结尾的)字符串,那么您可以使用fwrite而不是fprintf来转储内容
但总的来说,我同意其他人的看法,使用std::string可能更好。字符串必须以null结尾(即必须以
\0
结尾)(p.s:下次提供代码而不是描述您希望代码做什么,两者并不总是匹配)@Borgleader:答案就在下面,伙计↓↓↓↓↓↓..............................................................字符串必须以null结尾(即必须以\0
结尾)(注意:下次提供代码而不是描述您希望代码执行的操作,两者并不总是匹配)@Borleader:答案就在下面,伙计↓↓↓↓↓↓..............................................................不要使用字符*
。不要动态分配char
缓冲区。从1998年起,我们就有图书馆设施为我们做这件事。不要使用char*
。不要动态分配char
缓冲区。自1998年以来,我们已经有了图书馆设施来为我们做这件事。