Write a program that uses a stack object to determine if a string is a palindrome (i.e., the string is spelled identically backward and forward). The program should ignore spaces and punc- tuation.
What will be an ideal response?
```
#include
#include
using namespace std;
#include "Stack.h"
int main()
{
Stack< char > charStack;
char c;
char string1[ 80 ];
char string2[ 80 ];
int i = 0;
cout << "Enter a sentence:\n";
// get input
while ( ( c = static_cast< char >( cin.get() ) ) != '\n' )
{
if ( isalpha( c ) )
{
string1[ i++ ] = c;
charStack.push( c );
} // end if
} // end while
string1[ i ] = '\0';
i = 0;
// get stack elements
while ( !charStack.isStackEmpty() )
charStack.pop( string2[ i++ ] );
string2[ i ] = '\0';
if ( strcmp( string1, string2 ) == 0 )
cout << "\nThe sentence is a palindrome\n";
else
cout << "\nThe sentence is not a palindrome\n";
return 0; // indicates successful termination
} // end main
```
Enter a sentence:
oat y tao
The sentence is a palindrome
All nodes destroyed
You might also like to view...
Given the MS-DOS file name ?.*, which of the following file names is not referenced?
a. A.B b. A.1 c. AB.C d. A.BC
What are the permissions of the myFile.txt file?
File Permissions Visualize and Change the File Permissions. a. Navigate to /home/analyst/lab.support.files/scripts/.
[analyst@secOps ~]$ cd lab.support.files/scripts/b. Use the ls -l command to display file permissions.
[analyst@secOps scripts]$ ls -l total 60 -rwxr-xr-x 1 analyst analyst 190 Jun 13 09:45 configure_as_dhcp.sh -rwxr-xr-x 1 analyst analyst 192 Jun 13 09:45 configure_as_static.sh -rwxr-xr-x 1 analyst analyst 3459 Jul 18 10:09 cyberops_extended_topo_no_fw.py -rwxr-xr-x 1 analyst analyst 4062 Jul 18 10:09 cyberops_extended_topo.py -rwxr-xr-x 1 analyst analyst 3669 Jul 18 10:10 cyberops_topo.py -rw-r--r-- 1 analyst analyst 2871 Apr 28 11:27 cyops.mn -rwxr-xr-x 1 analyst analyst 458 May 1 13:50 fw_rules -rwxr-xr-x 1 analyst analyst 70 Apr 28 11:27 mal_server_start.sh drwxr-xr-x 2 analyst analyst 4096 Jun 13 09:55 net_configuration_files -rwxr-xr-x 1 analyst analyst 65 Apr 28 11:27 reg_server_start.sh -rwxr-xr-x 1 analyst analyst 189 Dec 15 2016 start_ELK.sh -rwxr-xr-x 1 analyst analyst 85 Dec 22 2016 start_miniedit.sh -rwxr-xr-x 1 analyst analyst 76 Jun 22 11:38 start_pox.sh -rwxr-xr-x 1 analyst analyst 106 Jun 27 09:47 start_snort.sh -rwxr-xr-x 1 analyst analyst 61 May 4 11:45 start_tftpd.shc. The touch command is very simple and useful. It allows for the quick creation of an empty text file. Use the command below to create an empty file in the /mnt directory:
[analyst@secOps scripts]$ touch /mnt/myNewFile.txt touch: cannot touch '/mnt/myNewFile.txt': Permission denied
[analyst@secOps ~]$ ls -l /mnt total 4 drwxr-xr-x 2 root root 4096 Mar 3 11:13 second_drive
[analyst@secOps ~]$ ls -ld /mnt drwxr-xr-x 3 root root 4096 Mar 3 15:43 /mntd. The chmod command is used to change the permissions of a file or directory. As before, mount the /dev/sdb1 partition on the /home/analyst/second_drive directory created earlier in this lab:
[analyst@secOps scripts]$ sudo mount /dev/sdb1 ~/second_drive/e. Change to the second_drive directory and list the contents of it:
[analyst@secOps scripts]$ cd ~/second_drive [analyst@secOps second_drive]$ ls -l total 20 drwx------ 2 root root 16384 Mar 3 10:59 lost+found -rw-r--r-- 1 root root 183 Mar 3 15:42 myFile.txt