题目描述
计算字符串最后一个单词的长度,单词以空格隔开。
计算字符串最后一个单词的长度,单词以空格隔开。
输入描述:
一行字符串,非空,长度小于5000。
输出描述:
整数N,最后一个单词的长度。
一行字符串,非空,长度小于5000。
输出描述:
整数N,最后一个单词的长度。
输入例子:
hello world
hello world
输出例子:
5
5
#include<iostream>
#include<cstring> //for the strlen() function
int main()
{
const int num = 5000;
char str[num];
std::cin.getline(str,num);
int count = 0;
int len = strlen(str);
for (int i = (len - 1); i >= 0; i--)
{
if (str[i] != ' ')
count++;
else
break;
}
std::cout << count << std::endl;
return 0;
system("pause");
}
#include<cstring> //for the strlen() function
int main()
{
const int num = 5000;
char str[num];
std::cin.getline(str,num);
int count = 0;
int len = strlen(str);
for (int i = (len - 1); i >= 0; i--)
{
if (str[i] != ' ')
count++;
else
break;
}
std::cout << count << std::endl;
return 0;
system("pause");
}
注:
1. cin使用空白(空格、制表符和换行符)来确定字符串的结束位置,这意味着cin在获取字符数组输入时只读取一个单词。读取该单词后,cin将该字符串放到数组中,并自动在结尾添加空字符。
2. istream中的类(如cin)提供了一些面向行的类成员函数:getline()和get()。这两个函数都读取一行输入,直到到达换行符。然而,getline()将丢弃换行符,而get()将换行符保留在输入序列中。
3. 假设要使用getline()将姓名读入到一个包含20个元素的name数组中。可以使用这样的函数调用:cin.getline(name,20);