Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 删除不需要的字符_C++ - Fatal编程技术网

C++ 删除不需要的字符

C++ 删除不需要的字符,c++,C++,我们已经创建了一个固定长度的字符数组。现在,我们在数组中写一个单词或一个句子。但是,这个单词句子的长度比字符数组的长度短,因此当我们使用printf函数打印消息时,也会打印一些垃圾字符。我们希望删除所有这些字符,即使写入的消息长度是可变的。 谢谢大家! 如果您不希望使用固定数组大小,您是否考虑过不使用该大小?您可以使用char*来代替,并动态分配它的大小 如果出于某种原因需要固定大小,我能想到的唯一解决方案是在单独的变量中跟踪单词的长度,然后只打印前n个字符。据我所知,无法确定哪些字符有效,哪些

我们已经创建了一个固定长度的字符数组。现在,我们在数组中写一个单词或一个句子。但是,这个单词句子的长度比字符数组的长度短,因此当我们使用printf函数打印消息时,也会打印一些垃圾字符。我们希望删除所有这些字符,即使写入的消息长度是可变的。
谢谢大家!

如果您不希望使用固定数组大小,您是否考虑过不使用该大小?您可以使用
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年以来,我们已经有了图书馆设施来为我们做这件事。