Visit Our UNIX and Linux User Community


while and if, what is the difference?


 
Thread Tools Search this Thread
Top Forums Programming while and if, what is the difference?
# 1  
Old 07-28-2009
while and if, what is the difference?

Hi,

I am learning C++ and I have the following code:
Code:
//Tokenizing program: pointer version.
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  char str[80];
  char token[80];
  char *p, *q;
  
  cout << "Enter a sentence: ";
  gets(str);
  
  p=str;
  
  //read a token at a time from a string
  
  while (*p)
    {
      q=token;
  /*read a character until either a space or a null character is encounterd*/
      
      while (*p && *p!= ' ')
    {
      *q=*p;
      q++;
      p++;
    }
    if (*p)
    p++;
    *q = '\0';
    cout << token << endl;
    }
  return 0;
}

When I changed the second while statement to an if statement, as:
Code:
//Tokenizing program: pointer version.
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
  char str[80];
  char token[80];
  char *p, *q;
  
  cout << "Enter a sentence: ";
  gets(str);
  
  p=str;
  
  //read a token at a time from a string
  
  while (*p)
    {
      q=token;
  /*read a character until either a space or a null character is encounterd*/
      
      if (*p && *p!= ' ')
    {
      *q=*p;
      q++;
      p++;
    }
      else if (*p)
    p++;
      *q = '\0';
      cout << token << endl;
    }
  return 0;
}

I started to have the output written in a vertical form, that is one letter at line.

What is the difference between the two codes?

Thanks,

faizlo
# 2  
Old 07-29-2009
In the first example you are building a string (by looping within the while statement block until you either encounter the case where *p is a null or space character) and then outputting the string followed by a newline.

In the second example you are just examining the value of a pointer (*p) and outputting this character followed by a newline.
# 3  
Old 07-29-2009
Hi fpmurphy,

Thanks for the reply. So, in the first case, while was looping and continues to loop till it reaches *p = ' ' or '\0'. with each step it assign its value to q, which increments also per index.

In the second case, if just spells out each character each time while (the first one) loops, right?

faizlo
# 4  
Old 07-30-2009
Correct
# 5  
Old 07-31-2009
Thank You fpmurphy,

faizlo

Previous Thread | Next Thread
Test Your Knowledge in Computers #550
Difficulty: Medium
The string concatenation operator can sometimes be combined with non-string types; numerical types.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to calculate difference of split and sum the difference

In the awk I am trying to subtract the difference $3-$2 of each matching $4 before the first _ (underscore) and print that value in $13. I think the awk will do that, but added comments. What I am not sure off is how to add a line or lines that will add sum each matching $13 value and put it in... (2 Replies)
Discussion started by: cmccabe
2 Replies

2. Shell Programming and Scripting

Get difference

Hi .. I am trying to create one function. It will have two arguments. Argument1: a,b,d,f,g Argument2:21212,sfsd,4546,67867,a,asda,b So the output will be Argument1 - Argument2 which is d,f,g Can anyone help with this one? (4 Replies)
Discussion started by: Anupam_Halder
4 Replies

3. Programming

what is the main difference between difference between using nonatomic lseek and O_APPEND

I think both write at the end of the file ...... but is there a sharp difference between those 2 instruction ..... thank you this is my 3rd question today forgive me :D (1 Reply)
Discussion started by: fwrlfo
1 Replies

4. UNIX for Dummies Questions & Answers

Difference between sh and ./

Hi All Can any body please tell me what is difference between sh scr ./scr Here scr is a script. (1 Reply)
Discussion started by: parthmittal2007
1 Replies

5. UNIX for Dummies Questions & Answers

Difference between

$x=10 and providing the spaces between = and 10 $x= 10 (4 Replies)
Discussion started by: shashank1311
4 Replies

6. Shell Programming and Scripting

Difference between 1,$ and /g

just wondering what the difference is between 1,$ and /g when doing a substitution in vi. doesn't seem to be much difference from what i can see. (2 Replies)
Discussion started by: bigubosu
2 Replies

7. UNIX for Advanced & Expert Users

difference

difference b/w shell scripting and perl scripting (2 Replies)
Discussion started by: simmijaswal
2 Replies

8. Shell Programming and Scripting

Difference between $* and $@

Somebody please tell me the difference between $@ and $* Thanks in advance. Saneesh Joseph (1 Reply)
Discussion started by: saneeshjose
1 Replies

9. Linux

what is the difference between -h and -H ?

samba:/home/backup # df -h /home/ Filesystem Size Used Avail Use% Mounted on /dev/sdb2 34G 8.6G 26G 26% /home samba:/home/backup # df -H /home/ Filesystem Size Used Avail Use% Mounted on /dev/sdb2 37GB 9.2GB 28GB 26% /home what... (2 Replies)
Discussion started by: cw1972
2 Replies

10. UNIX for Dummies Questions & Answers

Where is the difference?

Hello I would like to know where there is a difference between these two machines? HP9000-735/125 HP9000-B132L What does that all mean? Okay, HP= Hewlett Packard But 9000, 725/125, B132L ???? I am asking that question because I am about to buy one for myself, so I can have some fun... (3 Replies)
Discussion started by: Fwurm
3 Replies

Featured Tech Videos