Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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++;:如果数组中的任何其他字符前面有一个空字符怎么办?_C++_Arrays_C Strings - Fatal编程技术网

C++ C++;:如果数组中的任何其他字符前面有一个空字符怎么办?

C++ C++;:如果数组中的任何其他字符前面有一个空字符怎么办?,c++,arrays,c-strings,C++,Arrays,C Strings,如果我们正在输出所述数组,并且第一个字符是\0,那么它只是被忽略了,并且下一个非空字符被视为第一个字符吗?默认情况下,C样式的字符串是哨兵字符数组,这意味着它们在\0(或某种形式的空)的第一次出现时终止,因此它不应该被忽略。它应该终止字符串,将其视为空字符串。默认情况下,C样式的字符串是哨兵字符数组,这意味着它们在\0(或某种形式的null)第一次出现时终止,因此不应忽略它。它应该终止字符串,将其视为空字符串。取决于“输出”函数……如果它知道数组的长度,它可以输出每个元素,而不考虑值。大多数使用

如果我们正在输出所述数组,并且第一个字符是\0,那么它只是被忽略了,并且下一个非空字符被视为第一个字符吗?

默认情况下,C样式的字符串是哨兵字符数组,这意味着它们在\0(或某种形式的空)的第一次出现时终止,因此它不应该被忽略。它应该终止字符串,将其视为空字符串。

默认情况下,C样式的字符串是哨兵字符数组,这意味着它们在\0(或某种形式的null)第一次出现时终止,因此不应忽略它。它应该终止字符串,将其视为空字符串。

取决于“输出”函数……如果它知道数组的长度,它可以输出每个元素,而不考虑值。大多数使用“C字符串”的函数将在第一次\0时停止

取决于“输出”函数……如果它知道数组的长度,它可以输出每个元素,而不考虑值。大多数使用“C字符串”的函数将在第一次\0时停止

按照惯例,如果“C字符串”(读取
char
array)使用“string ish”方法处理字符串,它将在第一个ASCII零处停止(长度参数被视为“最多”长度)。如果它使用“array ish”方法,它将把一个长度参数视为一个“精确”的长度,并为循环从零迭代到该大小。后者通常可以在二进制处理中找到,而前者是
char
数组的字符串处理约定

C标准头中的示例是二进制数组的
memxyz
函数,而不是字符串的
strnxyz
函数。

按照惯例,如果“C字符串”(读取
char
数组)使用“string ish”方法处理字符串,它将在第一个ASCII零处停止(长度参数被视为“最多”长度。如果它使用“数组ish”方法,它会将长度参数视为“精确”长度,并将
循环从零迭代到该大小。后者通常可以在二进制处理中找到,而前者是
char
数组的字符串处理约定


C标准头中的示例是用于二进制数组的
memxyz
函数,而不是用于字符串的
strnxyz
函数。

你知道,你可以试试看。这比问问题和等待回答更快。@NathanOliver我问了,我只是想看看我是对还是错了。“我做了。。。“-你的观察和结论也属于你的问题。您的答案完全取决于所执行的输出是否需要以nulchar结尾的字符序列(也称为C字符串)。你在标记列表中包含了这个名字,但在你的问题中没有提及。你是如何输出数组的?@Bluasul那么,从逻辑上讲,如果函数跳过第一个字符,你会如何表示一个空字符串?转到下一个角色?如果第二个字符是
\0
?转到下一个角色?如果那是
\0
?看看这是怎么回事?你不可能有一个空字符串,否则打印函数可能会在never-never-land中查找第一个非空字符。你知道你可以试试看。这比问一个问题并等待回答要快得多。@NathanOliver我问了,我只是想看看我是对的还是做错了什么。“我做了…”-你的观察和结论也属于你的问题。您的答案完全取决于所执行的输出是否需要以nulchar结尾的字符序列(也称为C字符串)。你在标记列表中包含了这个名字,但在你的问题中没有提及。你是如何输出数组的?@Bluasul那么,从逻辑上讲,如果函数跳过第一个字符,你会如何表示一个空字符串?转到下一个角色?如果第二个字符是
\0
?转到下一个角色?如果那是
\0
?看看这是怎么回事?你不可能有一个空字符串,否则print函数可能会在never-never-land中查找第一个非空字符。只有C字符串是这样的。在其他类型的数组中,
0
没有什么特别之处。只有C字符串是这样的。在其他类型的数组中,
0
没有什么特别之处。