Personal tools
You are here: Home Projects C++ Cfront releases Release 3.0.3 source demo lang op_over.C
Document Actions

op_over.C

by Michael L Powell last modified 2007-01-26 03:20

Click here to get the file

Size 1.3 kB - File type text/plain

File contents

/*ident	"@(#)cls4:demo/lang/op_over.C	1.1" */
/*#########################################################################
#                       Copyright (c) 1991 AT&T
#                         All Rights Reserved   
#
#                THIS IS PROPRIETARY SOURCE CODE OF AT&T
#       
#                     This code has been published in
#                         C++ Primer, 2nd Edition 
#			    by Stanley Lippman
#                    Addison_Wesley Publishing Company
#
#########################################################################*/
#include <iostream.h>
#include "String.h"
#include <ctype.h>

const int LINESIZE = 40;
enum {BLANK=' ',PERIOD='.',COMMA = ',',SEMI=';',COLON=':'};

main() {
    String inBuf;
    int lineSize = 0;

    // operator>>( istream&, String& )
    while ( cin >> inBuf )
    {
        char ch;
	int index = 0;
	StringIterator next(inBuf);

        while (ch = next())
	{
	    switch (ch) {
		default:
		{
		    if (isalpha(ch) && isupper(ch))
			inBuf[index] = tolower(ch);
		    break;
		}
		case PERIOD:
		case COMMA:
		case SEMI:
		case COLON:
		    inBuf[index] = BLANK;
		    break;
	    }
	    ++index; ++lineSize;
	}
	if ( lineSize >= LINESIZE )
	{
	    cout << endl;
	    lineSize = 0;
        }
        cout << inBuf << " ";
    }
    cout << endl;
    return 0;
}
« May 2024 »
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: