基于Cpp,编写一段程序,读入一个包含标点符号的字符串,将标点符号去除后输出字符串剩余的部分。
时间: 2023-05-12 08:03:59 浏览: 76
当然可以,以下是代码示例:
```cpp
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main() {
string str;
getline(cin, str); // 读入包含标点符号的字符串
string result = "";
for (int i = 0; i < str.length(); i++) {
if (!ispunct(str[i])) { // 判断是否为标点符号
result += str[i]; // 如果不是,则加入结果字符串
}
}
cout << result << endl; // 输出去除标点符号后的字符串
return 0;
}
```
希望这个程序能够帮到你!
相关问题
这是一个将程序以字符串为单位,以空格或标点符号(只包含','或'.')作为标点符号(字符串中只包含','和'.')作为分隔符,对字符串中所有单词进行倒排(不包括标点符号),然后将已处理的字符串(不含标点符号)打印出来的程序。使用C++
好的,我明白了你的问题。以下是一个简单的C++程序,可以实现你所描述的功能:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
string input;
getline(cin, input); // 读入整行字符串
vector<string> words; // 存储单词的向量
// 遍历字符串,将单词存入向量中
for (int i = 0; i < input.size(); i++) {
if (input[i] == ' ' || input[i] == '.' || input[i] == ',') {
continue; // 跳过标点符号
}
string word;
while (i < input.size() && input[i] != ' ' && input[i] != '.' && input[i] != ',') {
word += input[i++];
}
words.push_back(word); // 存入单词
}
// 反转单词顺序
reverse(words.begin(), words.end());
// 打印处理后的字符串
for (int i = 0; i < words.size(); i++) {
cout << words[i];
if (i != words.size() - 1) {
cout << " "; // 每个单词之间用空格分隔
}
}
return 0;
}
```
你可以将输入字符串写在程序的第5行,然后编译运行程序,它将输出处理后的字符串。希望这能够帮到你!
编写一个函数,输入一行字符,将此字符串中最长的单词输出。输入一行只包含英文字符和空格的字符串,字符串的长度不超过100.。输出读入的最长单词。 请注意行尾输出换行。请使用cpp进行编程。
好的,我明白了。以下是您所要求的代码,可以实现该功能:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str[101];
cin.getline(str, 101);
int len = strlen(str);
int start_pos = 0, max_len = 0; // 记录最长单词的起始位置和长度
int cur_pos = 0, cur_len = 0; // 记录当前单词的起始位置和长度
while (cur_pos < len)
{
if (str[cur_pos] == ' ') // 如果是空格,则说明当前单词结束
{
if (cur_len > max_len)
{
max_len = cur_len;
start_pos = cur_pos - cur_len;
}
cur_len = 0; // 重置当前单词的长度
}
else
{
cur_len++;
}
cur_pos++;
}
// 处理最后一个单词
if (cur_len > max_len)
{
max_len = cur_len;
start_pos = cur_pos - cur_len;
}
for (int i = start_pos; i < start_pos + max_len; i++)
{
cout << str[i];
}
cout << endl;
return 0;
}
```
以上是代码实现,您可以直接将其复制到您的代码编辑器中,保存并编译运行即可。注意,代码中只考虑了空格作为单词分隔符,如果有其他分隔符或者标点符号,则需要作出相应调整。
阅读全文