最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

“strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。”


输入:s = "Hello World"
输出:5
解释:最后一个单词是“World”,
输入:s = "   fly me   to   the moon  "
输出:4
解释:最后一个单词是“moon”,长度为4。

方法一:

由字符串的后面遍历,当遇到字符时,length++,为空格且length不为0时结束。

int lengthOfLastWord(char * s)
{
  int length=0;
  int i;
  for(i=strlen(s)-1;i>=0;i--)//strlen c的库函数,字符串开头,中间某个位置直到\n截止计数
    {
      if(s[i]!=' ')length++;
      if(s[i]==' '&&length!=0)break;
    }
   return length;
}

方法二:
由字符串头开始遍历,遇到不为'  '计数,为'  'length置0,但解决不了最后字母后面为' ';则加了辅助变量m,将每一次的计数存在m中,若最后一个字母的后面为空格可以直接返回m值。

int lengthOfLastWord(char * s)
{
    int length=0;
    int m=0;//辅助变量
    int i;
    for(i=0;i<strlen(s);i++)
    {
        if(s[i]!=' ')
        {
            length++;
            m=length;
        }
        if(s[i]==' ')length=0;
    }
    if(s[i-1]=' ')return m;
    return length;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值