尾随空格的含义是什么,它与空白之间有什么区别? 我看到一个练习,其中有关于尾随空间的注释。
我没有看到问题,因为cin
可以忽略这些空格并只捕获数字?
答案 0 :(得分:14)
尾随空格是位于行尾的所有空白,后面没有任何其他字符。这包括空格(您称之为空白)以及制表符\t
,回车符\r
等。有25个unicode字符被视为空格,列在Wikipedia上。
答案 1 :(得分:3)
[尾随空格]和空白之间有什么区别?
行尾的空白是尾随空格。 字符(或单词或数字)之间的空白不是尾随空格。
尾随空间是什么意思?
对于我试图编码的东西,尾随空间对我来说是一个挑战。挑战激发了我创建以下实用程序例程。对于这个特殊的努力,我将“尾随空间”定义为一行末尾的任何“空格”。 (是的,我还创建了此功能的版本,用于引导空白区域和额外的空白区域(在线条中间有超过1个空格字符。)
const char* DTB::whitespaces = "\t\n\v\f\r ";
// 0 1 2 3 4 5
// 0)tab, 1)newline, 2)vertical tab, 3)formfeed, 4)return, 5)space,
void DTB::trimTrailingWhiteSpace(std::string& s)
{
do // poor man's try block
{
if(0 == s.size()) break; // nothing to trim, not an error or warning
// search from end of s until no char of 'whitespaces' is found
size_t found = s.find_last_not_of(DTB::whitespaces);
if(std::string::npos == found) // none found, so s is all white space
{
s.erase(); // erase the 'whitespace' chars, make length 0
break;
}
// found index to last not-whitespace-char
size_t trailingWhitespacesStart = found + 1; // point to first of trailing whitespace chars
if(trailingWhitespacesStart < s.size()) // s has some trailing white space
{
s.erase(trailingWhitespacesStart); // thru end of s
break;
}
}while(0);
} // void trimTrailingWhiteSpace(std::string& s)
答案 2 :(得分:2)
编程中的尾随空格(我认为你指的是)它是一个字符串或一行末尾的一系列空格。
在以下情况下,它们会引起一些麻烦:
您可能有一个跨越多行的字符串文字,在这种情况下,调试尾随空格可能很棘手
当你必须在行上键入追加时必须手动“修复”那些时,可以减慢开发过程
某些解析工具可能存在问题