{ "metadata": { "name": "chapter-9.ipynb" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

Chapter 9: Puppetting On Strings

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Print String , Page number: 329

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to demonstrate printing of a string'''\n", "\n", "#Variable declaration\n", "name= \"Klinsman\" # character array or string\n", "i = 0\n", "\n", "#while loop for printing\n", "while i <= 7 :\n", " print name[i] \n", " i = i + 1\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "K\n", "l\n", "i\n", "n\n", "s\n", "m\n", "a\n", "n\n" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Print String, Page number: 330

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to demonstrate printing of a string'''\n", "\n", "#Variable declaration\n", "name= \"Klinsman\\0\" # character array or string\n", "i = 0\n", "\n", "#while loop for printing\n", "while (name[i] != '\\0') :\n", " print name[i]\n", " i = i + 1\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "K\n", "l\n", "i\n", "n\n", "s\n", "m\n", "a\n", "n\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Print String Using Pointer, Page number: 330

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to print a string using a pointer to access the array elements'''\n", "\n", "#Variable declaration\n", "name = \"Klinsman\\0\" # string or character array\n", "i = 0\n", "ptr = name[i] # store base address of string\n", "\n", "#Result\n", "while ptr != '\\0':\n", " print ptr\n", " i = i+1\n", " ptr = name[i]\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "K\n", "l\n", "i\n", "n\n", "s\n", "m\n", "a\n", "n\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

strlen Function, Page number: 336

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to demonstrate the 'strlen' function '''\n", "\n", "\n", "#Variable declaration\n", "arr = \"Bamboozled\" # character array or string\n", "\n", "#string length function\n", "len1 = len(arr) \n", "len2 = len( \"Humpty Dumpty\" )\n", "\n", "#Result\n", "print \"string = %s length = %d\" %( arr, len1 )\n", "print \"string = %s length = %d\" %(\"Humpty Dumpty\", len2 )\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "string = Bamboozled length = 10\n", "string = Humpty Dumpty length = 13\n" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

xstrlen Function, Page number: 337

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to demonstrate a function that\n", "counts the number of characters present in a string'''\n", "\n", "#Function definition\n", "def xstrlen(s):\n", " length = 0\n", " while ( s[length] != '\\0' ):\n", " length += 1\n", " return length \n", "\n", "#Variable declaration\n", "arr = \"Bamboozled\\0\" # character array or string\n", "\n", "#Function calls\n", "len1 = xstrlen(arr) \n", "len2 = xstrlen( \"Humpty Dumpty\\0\" )\n", "\n", "#Result\n", "print \"string = %s length = %d\" %( arr, len1 )\n", "print \"string = %s length = %d\" %(\"Humpty Dumpty\\0\", len2 )\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "string = Bamboozled\u0000 length = 10\n", "string = Humpty Dumpty\u0000 length = 13\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

strcpy Function, Page number: 338

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to demonstrate the 'strcpy' function '''\n", "\n", "\n", "#Variable declaration\n", "source = \"Sayonara\" \n", "target = [] \n", "\n", "#strcpy function\n", "import copy\n", "target = copy.copy(source)\n", "\n", "#Result\n", "print \"source string = \", source \n", "print \"target string = \", target \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "source string = Sayonara\n", "target string = Sayonara\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

xstrcpy Function, Page number: 339

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to demonstrate a function that\n", "copies the contents of one string into another'''\n", "\n", "#Function definition\n", "def xstrcpy (t,s):\n", " i = 0\n", " while ( s[i] != '\\0' ):\n", " t = t + s[i]\n", " i = i + 1\n", " return t\n", " \n", "#Variable declaration\n", "source = \"Sayonara\\0\" \n", "target = ''\n", "\n", "target = xstrcpy ( target, source ) # function call\n", "\n", "#Result\n", "print \"source string = \", source \n", "print \"target string = \", target " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "source string = Sayonara\u0000\n", "target string = Sayonara\n" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

strcat Function, Page number: 342

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to demonstrate the 'strcat' function'''\n", "\n", "#Variable declaration\n", "source = \"Folks!\" \n", "target = \"Hello\"\n", " \n", "target = target + source # string concatenation\n", "#Result\n", "print \"source string = \", source \n", "print \"target string = \", target \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "source string = Folks!\n", "target string = HelloFolks!\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

strcmp Function, Page number: 343

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to demonstrate the 'strcmp' function'''\n", "\n", "#Variable declaration\n", "string1 = \"Jerry\\0\" \n", "string2 = \"Ferry\\0\"\n", "\n", "#Function definition\n", "def strcmp (string1 , string2):\n", " if (string1 == string2):\n", " v = 0 #If the two strings are identical, strcmp returns a value zero\n", " return v\n", " else:\n", " n = 0\n", " while ( string1[n]):\n", " if ( string1[n] == string2[n]):\n", " n = n + 1\n", " continue\n", " else:\n", " v = ord(string1[n]) - ord(string2[n]) #returns the numeric difference between the ASCII values of the first non-matching pairs of characters\n", " return v\n", " return v\n", "\n", "#Function call\n", "i = strcmp ( string1, \"Jerry\\0\" ) \n", "j = strcmp ( string1, string2 ) \n", "k = strcmp ( string1, \"Jerry boy\\0\" )\n", "\n", "#Result\n", "print i,j,k" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0 4 -32\n" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Two Dimensional Array of Characters, Page number: 344

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program asks you to type your name. When you do so, it checks your\n", "name against a master list to see if you are worthy of\n", "entry to the palace'''\n", "\n", "\n", "#Function definition\n", "def strcmp (string1 , string2):\n", " if (string1 == string2):\n", " v = 0 #If the two strings are identical, strcmp returns a value zero\n", " return v\n", " else:\n", " n = 0\n", " while ( string1[n]):\n", " if ( string1[n] == string2[n]):\n", " n = n + 1\n", " continue\n", " else:\n", " v = ord(string1[n]) - ord(string2[n]) #returns the numeric difference between the ASCII values of the first non-matching pairs of characters\n", " return v\n", " return v\n", "\n", "#Variable declaration\n", "FOUND = 1\n", "NOTFOUND = 0\n", "masterlist =[\"akshay\",\"parag\",\"raman\",\"srinivas\",\"gopal\",\"rajesh\"]\n", "yourname = []\n", "flag = NOTFOUND\n", "\n", "#Input from user\n", "#yourname = raw_input(\"Enter your name: \")\n", "yourname = \"Akshatha\"\n", "\n", "#Checking in the master list\n", "for i in range(0,6):\n", " a = strcmp ( masterlist[i], yourname )\n", " if a == 0:\n", " print \"Welcome, you can enter the palace\" \n", " flag = FOUND\n", " break\n", " \n", "if flag == NOTFOUND :\n", " print \"Sorry, you are a trespasser\" " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Sorry, you are a trespasser\n" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Exchange Names using 2-D Array of Characters, Page number: 348

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to exchange names using 2-D array of characters'''\n", "\n", "#Variable declaration\n", "names = [\"akshay\\0\\0\\0\",\"parag\\0\\0\\0\\0\",\"raman\\0\\0\\0\\0\",\"srinivas\\0\",\"gopal\\0\\0\\0\\0\",\"rajesh\\0\\0\\0\"]\n", "\n", "#Initial condition\n", "print \"Original: \", names[2], names[3] \n", "\n", "#Exchanging names\n", "for i in range(0,9):\n", " t = names[3][i]\n", " names[3] = names[3][0:i] + names[2][i] + names[3][i+1:]\n", " names[2] = names[2][0:i] + t + names[2][i+1:]\n", " \n", "\n", "#Result \n", "print \"New: \", names[2], names[3] " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Original: raman\u0000\u0000\u0000\u0000 srinivas\u0000\n", "New: srinivas\u0000 raman\u0000\u0000\u0000\u0000\n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Exchange Names using Array of Pointers to Strings, Page number: 349

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to exchange names using 2-D array of characters'''\n", "\n", "#Variable declaration\n", "names = [\"akshay\\0\\0\\0\",\"parag\\0\\0\\0\\0\",\"raman\\0\\0\\0\\0\",\"srinivas\\0\",\"gopal\\0\\0\\0\\0\",\"rajesh\\0\\0\\0\"]\n", "\n", "#Initial condition\n", "print \"Original: \", names[2], names[3] \n", "\n", "#Exchanging names\n", "temp = names[2] \n", "names[2] = names[3] \n", "names[3] = temp \n", "\n", "#Result \n", "print \"New: \", names[2], names[3] \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Original: raman\u0000\u0000\u0000\u0000 srinivas\u0000\n", "New: srinivas\u0000 raman\u0000\u0000\u0000\u0000\n" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Solution, Page number: 351

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "'''Program to illustrate the solution to the problem of limitation\n", "of Array of Pointers to Strings'''\n", "\n", "import copy\n", "\n", "#Variable declaration\n", "names = []\n", "n=[\"John\",\"Max\",\"Jim\",\"Tony\",\"Tom\",\"Harry\"]\n", "\n", "for i in range(0,6):\n", " n1 = n[i]\n", " p = copy.copy(n1)\n", " names.append(p) \n", "\n", "for i in range(0,6):\n", " print names[i] \n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "John\n", "Max\n", "Jim\n", "Tony\n", "Tom\n", "Harry\n" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }