zoukankan      html  css  js  c++  java
  • 输入一个字符串,判断最后一个单词的长度

    第一个版本,只考虑了简单的情况,未考虑全部是空格,连续好几个空格,空格在最后,空格在开头的种种情况

    #include<iostream>
    #include <string>
    using namespace std;
    int main()
    {
      string s;
      getline(cin,s);
      int total = s.size();
      for(int i = s.size()-1;i>=0;i--)
      {
        if(s[i] == ' ')
        {
          cout<<s.size()-1-i<<endl;
          return 0;
        }
      }
      return 0;
    }

    第二个版本,考虑的全面一点,就是指针用的挺多的,可读性也不是太好

    #include<iostream>
    #include <string>
    using namespace std;
    int main()
    {
      string s;
      getline(cin,s);
      int total = s.size();
      char *p=&s[total-1];
      while(*p== ' ')//从字符后面开始判断有没有空格,没有指针不动
      {
        if(p==s)//如果判断到头,证明全是空格,输出0
        {
          cout<< 0<<endl;
          return 0;
        }
        p--;//有的话就往前移
      }
      char *end =p;
      for(char *k=p;k!=s;k--)//从现在的尾部开始查
      {
        if(*k==' ')//碰到空格就输出一共移了几次
        {
          cout<< p-k <<endl;
          return 0;
        }
      }
      cout<< end-&s[0]+1 <<endl;//如果一直没碰到空格,证明就一个单词,输出长度
      return 0;
    }

  • 相关阅读:
    移位运算符<<与>>
    在线颜色选择器
    CSS鼠标指针cursor样式
    JavaScript实现自定义右键菜单
    如何去掉ul和li前面的小黑点
    转载:利用本地存储实现记录滚动条的位置
    CSS中样式覆盖优先顺序
    断言类
    MQ发送定时消息
    看代码所学3
  • 原文地址:https://www.cnblogs.com/mini-coconut/p/8634942.html
Copyright © 2011-2022 走看看