Visit Our UNIX and Linux User Community


Comparing the characters of 2 variables


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Comparing the characters of 2 variables
# 1  
Old 09-20-2011
Comparing the characters of 2 variables

hi
i am writing a hangman script and am having trouble checking the correct letters against the word
i need the script to compare the word against the letters guessed that are correct so once all the letters within the word have been guessed it will alow me to create a wining senario

eg

word
hello

guessed
adhewlso

this would be a correct result because all the letters within the word have been guessed

any help would be appreciated im stumped by this
# 2  
Old 09-20-2011
you want to enter letters one by one or user have to pass list of letters?

---------- Post updated at 10:22 AM ---------- Previous update was at 10:22 AM ----------

I will write a perl program and post it tomorrow.
# 3  
Old 09-20-2011
What's your system? What's your shell? If your shell doesn't even have substring operations this could be painful, if it has arrays, it's a snap.

If you can avoid it, a string might not be the best way to handle this, how about an array? The computer has an array like ( k i t t e n ), the user gets an array full of ( '' '' '' '' '' '' ). Whenever the user types a letter, loop through the 'kitten' array to see if the letter matches, and if it does, fill it into the user array.

Otherwise you could do this with substring operations, looping through "kitten" one by one and comparing it to an array full of spaces, if it matches replace one space by the letter. How to do this depends on your shell -- not all of them even have string operations...
# 4  
Old 09-20-2011
a user enters the letters to guess the word the check is to make sure the letters in the word have been guessed i am working on something loops to check each letter of the word with the letters guessed if the letter is found it will print the letter if it isnt it will just print " -"

i am not aloud to use arrays

and it is in bash
# 5  
Old 09-20-2011
"not allowed"? Is this homework?
# 6  
Old 09-20-2011
no this is not homework
i am a trainee developer at fdm group (google it )
and this is an exercise i have volentarily taken on as a learning exercise
there is no marking it is for my own personal development on an area i have never had experience with
# 7  
Old 09-20-2011
OK.

Since you have bash, you have string operations, so:

Code:
#!/bin/bash

STR="kitten"
GUESS="${STR//[a-z]/_}" # Replace all [a-z] with _

while [ "$GUESS" != "$STR" ]
do
        IN=""
        while [ "${#IN}" -ne 1 ] || [ ! -z "${IN/[a-z]}" ]
        do
                printf "${GUESS} Enter a character, then ENTER: "
                read IN
        done

        # Loop through every character in $STR.
        for((N=0; N<${#STR}; N++))
        do
                if [ "${STR:$N:1}" = "$IN" ]
                then
                        if [ "${GUESS:$N:1}" = "$IN" ]
                        then
                                echo "You already guessed that!"
                                break;
                        fi
                        # i.e. replacing the first 't' in kitten.
                        # ${GUESS:0:$N} gets 'ki'.
                        # ${GUESS:$((N+1))} gets 'ten'.
                        # We stick our guess, $IN, in the middle.
                        GUESS="${GUESS:0:$N}${IN}${GUESS:$((N+1))}"
                fi
        done
done

echo "You got it!  $GUESS"

This User Gave Thanks to Corona688 For This Post:
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #224
Difficulty: Easy
In September 2019, according to NetMarketShare, Windows had just over 87% of the global desktop market, followed by Linux at close to 10%, and macOS in third place at around 2%.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Comparing 2 variables in UNIX

Hi, I have 2 variables as given below. How can i compare them and say its matching ? Appreciate your help VAR1=describe/read/write VAR2=read/write/describeThanks, Please use CODE tags as required by forum rules! (4 Replies)
Discussion started by: prince1987
4 Replies

2. Shell Programming and Scripting

Comparing two variables

I have a script like this. Just couldn't get the comparison part work. Any thought? thanks, #!/usr/bin/ksh -x STEP=`echo $(basename $0 .ksh) | tr "" ""` log=/skip.log while read LINE do if then echo `date`: STEP $STEP skipped by user >> $log exit 0 fi done < $1 echo... (0 Replies)
Discussion started by: ghostmic
0 Replies

3. Shell Programming and Scripting

awk comparing variables

Is there a way to compare variables in a 'awk'? I've been trying for a while and can't figure it out. I'm guessing its not possible :/ VAR=Bob awk '$3 == $VAR { print $1 }' file.txt Regards Jikuu (4 Replies)
Discussion started by: Jikuu
4 Replies

4. Shell Programming and Scripting

Comparing content of two variables

I have very abstract need of "comparing two variables" and take subsequent actions. please refer to image below https://lh3.googleusercontent.com/-frNk5iA3q1c/TjI3lE0sWOI/AAAAAAAAAIE/fxzB1w07gas/script_block.JPG I have a part of script which reads a file and generates variables based on... (4 Replies)
Discussion started by: animesharma
4 Replies

5. Shell Programming and Scripting

comparing multiple variables by 'if then'

Hi, I am a noob at shell scripting. basically I am trying to compare row counts from 8 tables in different databases. I have managed to get the row counts using awk from the spool files for both databases. now I have 16 variables with me for database 1 : $A $B $C $D $E $F $G... (3 Replies)
Discussion started by: smallville
3 Replies

6. UNIX for Dummies Questions & Answers

comparing variables

im trying to compare ipaddresses. i loop through an array to see if the ip is already is in the array and if it is it should set a flag and then i wont add it to the array. but its just adding all the ipaddresses to the array if ] then ... (3 Replies)
Discussion started by: magnia
3 Replies

7. Shell Programming and Scripting

Comparing Variables in Perl

Hi. I have three arrays. @a=('AB','CD','EF'); @b=('AB,'DG',HK'); @c=('DD','TT','MM'); I want to compare the elements of the first two array and if they match then so some substition. I tried using the if statement using the scalar value of the array but its not giving me any output. ... (7 Replies)
Discussion started by: kamitsin
7 Replies

8. Shell Programming and Scripting

Grabbing variables and comparing

I have two computers with dynamic IP addresses and am using dyndns so that they are identifiable as the same computer even if their IPs change (we'll call them host1.dyndns.com and host2.dyndns.com). I also have a remote server which I would like to store my computers' IP addresses on. There is a... (9 Replies)
Discussion started by: kerpm
9 Replies

9. Shell Programming and Scripting

Comparing two variables

Script #!/bin/sh hardware=PC os=WindowsNET for i in `cat newservers` do x=`sudo /opt/openv/netbackup/bin/admincmd/bpplclients |grep $i |head -40 |grep $i|awk '{print $3;exit}'` if then echo "$i is already added" else echo "Need to add" fi done O/p in debug mode bash-2.05$... (3 Replies)
Discussion started by: rajip23
3 Replies

10. UNIX for Dummies Questions & Answers

comparing variables

I have searched and found a few threads that have dealt with this, but the examples I've tried haven't seemed to help. I am monitoring our database log for high checkpoints. I can parse out the checkpoint value which can be anywhere from zero into a 3 digit number. I set a variable to be the... (3 Replies)
Discussion started by: MizzGail
3 Replies

Featured Tech Videos