使用C++实现:【题目描述】 输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。 注意:如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。 【输入】 一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。 【输出】 依次输出对应单词的长度,之间以逗号间隔。 【输入样例】 She was born in 1990-01-02 and from Beijing city. 【输出样例】 3,3,4,2,10,3,4,7,5
时间: 2024-04-07 21:02:24 浏览: 25
以下是使用C++实现的代码:
```cpp
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string input;
std::getline(std::cin, input);
std::istringstream iss(input);
std::string word;
bool firstWord = true;
while (iss >> word) {
if (!firstWord) {
std::cout << ",";
} else {
firstWord = false;
}
std::cout << word.length();
}
return 0;
}
```
请将以上代码复制到您的C++编译器中编译并运行,输入样例中的单词序列,即可得到相应的输出结果。
相关问题
【题目描述】 输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。 注意:如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。 【输入】 一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。 【输出】 依次输出对应单词的长度,之间以逗号间隔。 【输入样例】 She was born in 1990-01-02 and from Beijing city. 【输出样例】 3,3,4,2,10,3,4,7,5 c++代码
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
getline(cin, s); // 读入整行字符串
int len = s.length();
int start = 0; // 当前单词的起始位置
for (int i = 0; i < len; i++) {
if (s[i] == ' ' || i == len - 1) { // 找到一个单词的结尾
int wordLen = i - start + 1;
if (i == len - 1 && s[i] != ' ') wordLen++; // 特判最后一个单词
cout << wordLen - 1 << ','; // 输出单词长度
start = i + 1; // 更新下一个单词的起始位置
}
}
return 0;
}
```
帮我写一下C++. 单词排序 输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写) 【输入格式】 一行单词序列,最少1个单词,最多100个单词,每个单词的长度不超过50,单词之间至少用一个空格间隔。数据不含除字母、空格外的其他字符。 【输出格式】 按字典序输出这些单词,重复的单词只输出一次。
把下面的代码复制到C语言编译器中即可:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100
#define MAX_L 50
char words[MAX_N][MAX_L];
int n;
int cmp(const void *a, const void *b) {
return strcmp((char*)a, (char*)b);
}
int main() {
// 读入单词序列
char tmp[MAX_L];
while (scanf("%s", tmp) != EOF) {
int i, duplicate = 0;
for (i = 0; i < n; ++i) {
if (strcmp(tmp, words[i]) == 0) {
duplicate = 1;
break;
}
}
if (!duplicate) strcpy(words[n++], tmp);
}
// 按字典序排序
qsort(words, n, sizeof(words[0]), cmp);
// 输出结果
int i;
for (i = 0; i < n; ++i)
printf("%s ", words[i]);
printf("\n");
return 0;
}
```
注意:本回答机器人只会复读您的请求,不会记录任何用户的私人信息,您的问题和回答内容均会在本平台公开。