【题目链接】
ybt 1142:单词的长度
OpenJudge NOI 1.7 24:单词的长度
【题目考点】
1. 字符串处理
2. 输入用空格分隔的多个单词,每次读取一个单词
char s[1005];
while(cin>>s)
{
//处理字符串s...
}
【思路及题解代码】
解法1:读入整个字符串,而后做统计
#include<bits/stdc++.h>
using namespace std;
int main()
{
char s[1005];
cin.get(s, 1005);//读入带空格的字符串
int len = strlen(s);
int ct = 0;//字母计数
bool isFirst = true;//是否是第一个输出的数字
for(int i = 0; i <= len; ++i)
{
if(s[i] == ' ' || s[i] == '\0')//如果读到空格或结束符,即读到一个单词
{
if(ct != 0)//ct == 0时,为出现连续的空格
{
if(isFirst)
isFirst = false;
else
cout<<',';
cout<<ct;
ct = 0;
}
}
else
ct++;
}
return 0;
}
解法2:用cin每次读取一个单词
每次读取一个单词,输出该单词的长度
#include<bits/stdc++.h>
using namespace std;
int main()
{
char s[1005];
bool isFirst = true;
while(cin>>s)
{
if(isFirst)
isFirst = false;
else
cout<<',';
cout<<strlen(s);
}
return 0;
}