尾随空间是什么意思,它和空白之间有什么区别?

时间:2014-03-08 18:21:57

标签: c++ c

尾随空格的含义是什么,它与空白之间有什么区别? 我看到一个练习,其中有关于尾随空间的注释。

我没有看到问题,因为cin可以忽略这些空格并只捕获数字?

3 个答案:

答案 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)

编程中的尾随空格(我认为你指的是)它是一个字符串或一行末尾的一系列空格。

在以下情况下,它们会引起一些麻烦:

  • 您可能有一个跨越多行的字符串文字,在这种情况下,调试尾随空格可能很棘手

  • 当你必须在行上键入追加时必须手动“修复”那些时,可以减慢开发过程

  • 某些解析工具可能存在问题