Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

This is a C + + progaming lanuage I passed the first test case now I am stuck on the second testcase my program is

This is a C++ progaming lanuage I passed the first test case now I am stuck on the second testcase my program is noy funcitoning correctly coud someone help me out to fix my program? thank you
second testcase 3 ASCII Neighbors (50 points)
Write a program that reads from standard input a sequence of whitespace-separated 'words'.
The program should output each word on its own line, but only including the characters that
are equal or adjacent in the ASCII table. For example, the character 'i' has an ASCII value of
105, and it should be included in the output only if it is next to an h(104), an i (105), or a j
(106). In your solution, you must use a void function named FilterNeighbors, that takes in
a string, and filters it based on the problem specification.
Example Input:
ahidkkrtsraaav
Expected Output:
hikktsraaa
The first 'a' isn't in the output because its only neighbor (h) is not adjacent to it in the ASCII
table. The 'h' and the 'i' are adjacent in the table so they are outputted. The 'k's are equal to
each other, so they are also outputted. And so on.
Example Input:
23321 gbsyfbjlbsadfoebw ./-$$!&%aAJ
{|}:(:::)=k?
Expected Output:
23321
.??$$2%
{|}
Remember that there are lots of characters in ASCII beyond just letters. The "gbsyfbjlbsad-
foebw" word contains to letters that are adjacent in the word and in the table, so its line is
empty.
When writing your program, you may only use concepts you have learned in the course
thus far.
Your program should compile and run.
The formatting must match exactly as shown in the example above, including whitespaces.
"23321 gbsyfbjlbsadfoebw ./-$$!&%aAJ
{|}::>=k?"
Expected Output:
"23321
(new line)
./$$&%
{|}>="
My program output:
"23321
./$$&%
(new line)
{|}>="
Mycode:
#include
#include
#include
#include
#include
using std::cout;
using std::endl;
using std::cin;
using std::string;
using std::vector;
void FilterNeighbors(string &s){
string result;
int n = s.size();
for (int i =0; i n; ++i){
if (i >0 && std::abs(s[i]- s[i -1])=1){
result += s[i];
} else if (i n -1 && std::abs(s[i]- s[i +1])=1){
result += s[i];
}
}
s = result;
}
int main(){
string line;
vector input_lines;
// Read multiple lines of input
while (std::getline(cin, line)){
input_lines.push_back(line);
}
for (size_t i =0; i input_lines.size(); ++i){
string &line = input_lines[i];
vector words;
string word;
// Split the line into words
for (char c : line){
if (std::isspace(c)){
if (!word.empty()){
words.push_back(word);
word.clear();
}
} else {
word += c;
}
}
if (!word.empty()){
words.push_back(word);
}
// Process each word with FilterNeighbors
vector filtered_words;
for (string &word : words){
FilterNeighbors(word);
if (!word.empty()){
filtered_words.push_back(word);
}
}
// Output the results
for (const string &filtered_word : filtered_words){
cout filtered_word endl;
}
// Add an extra new line at the end of the output for each input line, except the last one
if (i != input_lines.size()-1){
cout endl;
}
}
return 0;
}
image text in transcribed

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions