Sponsored Content
Full Discussion: Text stream K&R exercises
Operating Systems OS X (Apple) Text stream K&R exercises Post 302387241 by Jammer Six on Friday 15th of January 2010 02:20:39 AM
Old 01-15-2010
Quote:
Originally Posted by pludi
You said that it prints 6 1s if you just enter 5. Do you hit Return after entering the 5 characters? If so, there's your sixth.
Oh! The return character! Of course! duh...

Now, of course, I have another problem. I thought 1-8 would be easy, but not so much.

The code:

Code:
/*
 *  blank.c
 *	
 *	Exercise 1-8, write a program that counts blanks, tabs and newlines.
 */

#include <stdio.h>


main(){
	int x,s,t,n;
	
	s = 0; // counter for spaces
	t = 0; // counter for tabs
	n = 0; // counter for newlines
	
	while (x = getchar()!=EOF){
		
		if (x = " ") // x is a blank space
			s++;
		if (x = "\t") // x is a tab
			t++;
		if (x = "\n") // x is a newline
			n++;
		
	} // End while

	printf("\nThere were ");
	printf("%d", s);
	printf(" spaces.\n");
	
	printf("There were ");
	printf("%d", t);
	printf(" tabs.\n");
	
	printf("There were ");
	printf("%d", n);
	printf(" newlines.\n\n");
	
} // End main

It stays in a loop, but the loop isn't very well behaved.

It takes the input, and I figured that it should only increment the various counters if the character in question were the right type-- but no.

It increments EACH counter with EVERY character.

It has no discrimination. Enter 6 characters and a return, and it will say that there are 7 spaces, 7 tabs and 7 newlines.

I don't see how it's getting into each if statement! It's breaking all the rules!
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

exercises in shell

Hi, I am a beginner at shell scripting, though I have several years of Oracle programming experience. Can anyone recommend a site where I can find some exercises on shell programming. Is there anywhere I can telnet as I dont have UNIX OS on my PC? Thanks Rohit (1 Reply)
Discussion started by: rohitv
1 Replies

2. Shell Programming and Scripting

Shall Scripts exercises

I have just 3 things that I really need to know the solution, please allow me to show it. any help would be nice script that backup a file. The file name to backup should be provided as input parameter, the backup file should have the same file name with the extension ".bak". If the user... (1 Reply)
Discussion started by: anything
1 Replies

3. Shell Programming and Scripting

regex to remove text before&&after comma chars

Hi, all: I have a question about "cleaning up" a huge file with regular expression(s) and sed: The init file goes like this: block1,blah-blah-blah-blah,numseries1,numseries2,numseries3,numseries4 block2,blah-blah-blah-blah-blah,numseries,numseries2,numseries3,numseries4 ...... (3 Replies)
Discussion started by: yomaya
3 Replies

4. Shell Programming and Scripting

Need ideas for practice exercises in sh

I did an assignment for sh scripting back in november, and I found it quite fun learning. I would like to retain this knowledge as I'm pretty sure it was my only scripting assignment, from now on in my programming course we won't be doing any scripting apart from the typical makefile scripts. The... (6 Replies)
Discussion started by: gcampton
6 Replies

5. Shell Programming and Scripting

[Video stream] network stream recording with mplayer

Hi I used this command: mplayer http://host/axis-cgi/mjpg/video.cgi -user root -passwd root \ -cache 1024 -fps 25.0 -nosound -vc ffh264 \ -demuxer 3 -dumpstream -dumpfile output.avi It's ok but... Video Playing is very fast! Why? Is it a synch problem? What parameter I have to use for... (1 Reply)
Discussion started by: takeo.kikuta
1 Replies

6. Shell Programming and Scripting

I would like to have some exercises to develop my skills

Hi , I would like to do some exercises/scripts in order to develop my skills in shell scripts, can someone pass me some links/suggestions where i can find this? Thanks a lot :) (3 Replies)
Discussion started by: prpkrk
3 Replies

7. Shell Programming and Scripting

Array & text file

Hi all, i have a text file such as: 10 17:54:47,213 10 17:54:47,214 10 17:54:49,338 10 17:54:49,399 10 17:54:50,402 10 17:54:50,403 11 17:54:47,213 11 17:54:47,213 11 17:54:49,362 11 17:54:49,422 11 17:54:50,429 11 17:54:50,429 11 17:54:50,429 11 17:54:50,429 11 17:54:51,510 12... (10 Replies)
Discussion started by: sbamap
10 Replies

8. Shell Programming and Scripting

Extract & Manipulate continous data stream-- tcpdump

Hello; I have this rather tricky problem to solve --(to me, anyways) .. I am processing the following one liner with tcpdump.. tcpdump -i T3501 -A ether host 00:1e:49:29:fc:c9 or ether host 00:1b:2b:86:ec:1b or ether host 00:21:1c:98:a4:08 and net 149.83.6.0/24 | grep --line-buffered -B... (5 Replies)
Discussion started by: delphys
5 Replies

9. Shell Programming and Scripting

Insert Text after one, two, three lines & so on..

I want to insert "Text" in each file as a place where I mentioned below "Insert Text Here". These files are something like news of newspaper. Generally, newspaper headlines contain one or two lines. I don't know how it can be identified whether Text is inserted after first line or second line. ... (10 Replies)
Discussion started by: imranrasheedamu
10 Replies

10. UNIX for Beginners Questions & Answers

Help with a question in one of my exercises

Hello, so I'm taking unix in one of my classes and I've been having fun, but I got stuck at this one question that I'm supposed to know how to answer but I can't wrap my head around it, I figured I'll post it here and see if someone can shed some light into what I'm doing wrong. Here's the... (1 Reply)
Discussion started by: hiwolf25
1 Replies
JOT(1)							    BSD General Commands Manual 						    JOT(1)

NAME
jot -- print sequential or random data SYNOPSIS
jot [-cnr] [-b word] [-p precision] [-s string] [-w word] [reps [begin [end [s]]]] DESCRIPTION
The jot utility is used to print out increasing, decreasing, random, or redundant data (usually numbers) one per line. The following options are available: -b word Just print word repetitively. -c This is an abbreviation for -w %c. -n Do not print the final newline normally appended to the output. -p precision Print only as many digits or characters of the data as indicated by the integer precision. In the absence of -p, the precision is the greater of the precisions of begin and end. The -p option is overridden by whatever appears in a printf(3) conversion following -w. -r Generate random data instead of sequential data, the default. -s string Print data separated by string. Normally, newlines separate data. -w word Print word with the generated data appended to it. Octal, hexadecimal, exponential, ASCII, zero padded, and right-adjusted represen- tations are possible by using the appropriate printf(3) conversion specification inside word, in which case the data are inserted rather than appended. The last four arguments indicate, respectively, the number of data, the lower bound, the upper bound, and the step size or, for random data, the seed. While at least one of them must appear, any of the other three may be omitted, and will be considered as such if given as ``-''. Any three of these arguments determines the fourth. If four are specified and the given and computed values of reps conflict, the lower value is used. If fewer than three are specified, defaults are assigned left to right, except for s, which assumes its default unless both begin and end are given. Defaults for the four arguments are, respectively, 100, 1, 100, and 1, except that when random data are requested, s defaults to a seed depending upon the time of day. reps is expected to be an unsigned integer, and if given as zero is taken to be infinite. begin and end may be given as real numbers or as characters representing the corresponding value in ASCII. The last argument must be a real number. Random numbers are obtained through random(3). The name jot derives in part from iota, a function in APL. EXAMPLES
The command: jot - 42 87 1 prints the integers from 42 to 87, inclusive. The command: jot 21 -1 1.00 prints 21 evenly spaced numbers increasing from -1 to 1. The command: jot -c 128 0 prints the ASCII character set. The command: jot -w xa%c 26 a prints the strings ``xaa'' through ``xaz''. The command: jot -r -c 160 a z | rs -g 0 8 prints 20 random 8-letter strings. The command: jot -b y 0 is equivalent to yes(1). The command: jot -w %ds/old/new/ 30 2 - 5 prints thirty ed(1) substitution commands applying to lines 2, 7, 12, etc. The command: jot 0 9 - -.5 prints the stuttering sequence 9, 8, 8, 7, etc. The command: jot -b x 512 > block creates a file containing exactly 1024 bytes. The command: expand -`jot -s, - 10 132 4` sets tabs four spaces apart starting from column 10 and ending in column 132. The command: grep `jot -s "" -b . 80` prints all lines 80 characters or longer. SEE ALSO
ed(1), expand(1), rs(1), seq(1), yes(1), printf(3), random(3) BSD
January 5, 2010 BSD
All times are GMT -4. The time now is 09:24 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy