Question: 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;
}
 This is a C++ progaming lanuage I passed the first test

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!