{ "metadata": { "name": "ch8" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Chapter 8: C- Strings" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.1, page no. 184" ] }, { "cell_type": "code", "collapsed": false, "input": [ "n= [44] # n holds the int 44\n", "print \"int n=44; // n holds the int 44:\\n\";\n", "print \"\\t\\t n = \" , n \n", "print \"\\t\\t &n = \" , hex(id(n))\n", "pn = n \n", "print \"int* pn=&n; // pn holds the address of n:\\n\";\n", "print \"\\t\\t n = \" , n \n", "print \"\\t\\t &n = \" , hex(id(n))\n", "print \"\\t\\t pn = \" , hex(id(pn)) \n", "print \"\\t\\t &pn = \" , hex(id(hex(id(pn))))\n", "print \"\\t\\t *pn = \" , pn\n", "\n", "pn[0] = 77 # changes the value of n to 77\n", "print \"*pn = 77; // changes the value of n to 77:\\n\";\n", "print \"\\t\\t n = \" , n \n", "print \"\\t\\t &n = \" , hex(id(n))\n", "print \"\\t\\t pn = \" , hex(id(pn)) \n", "print \"\\t\\t &pn = \" , hex(id(hex(id(pn))))\n", "print \"\\t\\t *pn = \" , pn\n", "\n", "q = n \n", "print \"int* q=&n; // q also holds the address of n:\\n\";\n", "print \"\\t\\t n = \" , n \n", "print \"\\t\\t &n = \" , hex(id(n))\n", "print \"\\t\\t pn = \" , hex(id(pn)) \n", "print \"\\t\\t &pn = \" , hex(id(hex(id(pn))))\n", "print \"\\t\\t *pn = \" , pn\n", "print \"\\t\\t q = \" , hex(id(q))\n", "print \"\\t\\t &q = \" , hex(id(hex(id(hex(id(pn))))))\n", "print \"\\t\\t *q = \" , q \n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "int n=44; // n holds the int 44:\n", "\n", "\t\t n = [44]\n", "\t\t &n = 0x9bfb92c\n", "int* pn=&n; // pn holds the address of n:\n", "\n", "\t\t n = [44]\n", "\t\t &n = 0x9bfb92c\n", "\t\t pn = 0x9bfb92c\n", "\t\t &pn = 0x9bf5aa0\n", "\t\t *pn = [44]\n", "*pn = 77; // changes the value of n to 77:\n", "\n", "\t\t n = [77]\n", "\t\t &n = 0x9bfb92c\n", "\t\t pn = 0x9bfb92c\n", "\t\t &pn = 0x9c6a760\n", "\t\t *pn = [77]\n", "int* q=&n; // q also holds the address of n:\n", "\n", "\t\t n = [77]\n", "\t\t &n = 0x9bfb92c\n", "\t\t pn = 0x9bfb92c\n", "\t\t &pn = 0x9bf5c80\n", "\t\t *pn = [77]\n", "\t\t q = 0x9bfb92c\n", "\t\t &q = 0x9c6a760\n", "\t\t *q = [77]\n" ] } ], "prompt_number": 1 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.2, page no. 185" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s = \"ABCD\"\n", "for i in range(4):\n", " print \"s[\" , i , \"] = '\" , s[i] , \"'\\n\";\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "s[ 0 ] = ' A '\n", "\n", "s[ 1 ] = ' B '\n", "\n", "s[ 2 ] = ' C '\n", "\n", "s[ 3 ] = ' D '\n", "\n" ] } ], "prompt_number": 2 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.3, page no. 186" ] }, { "cell_type": "code", "collapsed": false, "input": [ "while True:\n", " word = raw_input()\n", " if len(word) < 2:\n", " break\n", " l = word.split(' ')\n", " for i in l:\n", " print '\\t\"' , i , '\"'\n" ], "language": "python", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Today's date is March 12, 2000.\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\t\" Today's \"\n", "\t\" date \"\n", "\t\" is \"\n", "\t\" March \"\n", "\t\" 12, \"\n", "\t\" 2000. \"\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Tomorrow is Monday.\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\t\" Tomorrow \"\n", "\t\" is \"\n", "\t\" Monday. \"\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 6 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.4, page no. 187" ] }, { "cell_type": "code", "collapsed": false, "input": [ "while True:\n", " line = raw_input()\n", " if len(line) < 2:\n", " break\n", " print \"\\t[\" , line , \"]\"\n" ], "language": "python", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Once upon a midnight dreary, while I pondered, weak and weary,\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\t[ Once upon a midnight dreary, while I pondered, weak and weary, ]\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Over a many quaint and curious volume of forgotten lore,\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\t[ Over a many quaint and curious volume of forgotten lore, ]\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 7 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.5, page no. 187" ] }, { "cell_type": "code", "collapsed": false, "input": [ "while True:\n", " word = raw_input()\n", " if len(word) < 2:\n", " break\n", " l = word.split(',')\n", " for i in range(len(l)-1):\n", " print '\\t[' , l[i] , ']'\n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Once upon a midnight dreary, while I pondered, weak and weary,\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\t[ Once upon a midnight dreary ]\n", "\t[ while I pondered ]\n", "\t[ weak and weary ]\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Over a many quaint and curious volume of forgotten lore,\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\t[ Over a many quaint and curious volume of forgotten lore ]\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 8 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.6, page no. 188" ] }, { "cell_type": "code", "collapsed": false, "input": [ "count = 0\n", "while True:\n", " a = raw_input()\n", " if len(a) < 1:\n", " break\n", " for ch in a:\n", " if (ch == 'e'): count+=1\n", " \n", "print count , \" e's were counted.\\n\"\n" ], "language": "python", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Once upon a midnight dreary, while I pondered, weak and weary,\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Over many a quaint and curious volume of forgotten lore,\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "11 e's were counted.\n", "\n" ] } ], "prompt_number": 9 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.7, page no. 188" ] }, { "cell_type": "code", "collapsed": false, "input": [ "while True:\n", " a = raw_input()\n", " if len(a) < 1:\n", " break\n", " print a.title()\n" ], "language": "python", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Fourscore and seven years ago our fathers\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Fourscore And Seven Years Ago Our Fathers\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "brought forth upon this continent a new nation,\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Brought Forth Upon This Continent A New Nation,\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.8, page no. 189" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = raw_input()\n", "l = a.split(' ')\n", "nos = []\n", "for i in l:\n", " try:\n", " i = int(i)\n", " nos.append(i)\n", " except:\n", " continue\n", "m = nos[0]\n", "n = nos[1] \n", "print m , \" + \" , n , \" = \" , m+n" ], "language": "python", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "what is 305 plus 9416 ?\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "305 + 9416 = 9721\n" ] } ], "prompt_number": 11 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.10, page no. 191" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "count=0\n", "\n", "print \"Enter at most 4 names with at most 19 characters:\\n\";\n", "while (True):\n", " n = raw_input()\n", " if len(n) < 1:\n", " break\n", " name.append(n)\n", " count += 1\n", " \n", "print \"The names are:\\n\"\n", "for i in range(count):\n", " print \"\\t\" , i , \". [\" , name[i] , \"]\" \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Enter at most 4 names with at most 19 characters:\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "George Washington\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "John Adams\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Thomas Jefferson\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "The names are:\n", "\n", "\t0 . [ George Washington ]\n", "\t1 . [ John Adams ]\n", "\t2 . [ Thomas Jefferson ]\n" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.11, page no. 192" ] }, { "cell_type": "code", "collapsed": false, "input": [ "name = []\n", "count=0\n", "\n", "print \"Enter at most 4 names with at most 19 characters:\\n\";\n", "while (True):\n", " n = raw_input()\n", " if len(n) < 1:\n", " break\n", " name.append(n)\n", " count += 1\n", " \n", "print \"The names are:\\n\"\n", "for i in range(count):\n", " print \"\\t\" , i , \". [\" , name[i] , \"]\" " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Enter at most 4 names with at most 19 characters:\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "George Washington\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "John Adams\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "Thomas Jefferson\n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "The names are:\n", "\n", "\t0 . [ George Washington ]\n", "\t1 . [ John Adams ]\n", "\t2 . [ Thomas Jefferson ]\n" ] } ], "prompt_number": 13 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.12, page no. 193" ] }, { "cell_type": "code", "collapsed": false, "input": [ "name = [ \"George Washington\", \"John Adams\", \"Thomas Jefferson\"]\n", "print \"The names are:\\n\"\n", "for i in range(3):\n", " print \"\\t\" , i , \". [\" , name[i] , \"]\"\n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The names are:\n", "\n", "\t0 . [ George Washington ]\n", "\t1 . [ John Adams ]\n", "\t2 . [ Thomas Jefferson ]\n" ] } ], "prompt_number": 14 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.13, page no. 193" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s = \"ABCDEFG\"\n", "print \"len(\" , s , \") = \" , len(s) \n", "print \"len(\\\"\\\") = \" , len(\"\")\n", "print \"Enter string: \"\n", "b = raw_input()\n", "print \"len(\" , b , \") = \" , len(b)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "len( ABCDEFG ) = 7\n", "len(\"\") = 0\n", "Enter string: \n" ] }, { "name": "stdout", "output_type": "stream", "stream": "stdout", "text": [ "hello how are you !!!\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "len( hello how are you !!! ) = 21\n" ] } ], "prompt_number": 15 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.14, page no. 194" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s = \"The Mississippi is a long river.\"\n", "print 's = \"' , s , '\"'\n", "p = s.find(' ')\n", "print \"find(s, ' ') points to s[\" , p , \"].\"\n", "p = s.find('s')\n", "print \"find(s, 's') points to s[\" , p , \"].\"\n", "p = s.rfind('s')\n", "print \"reverse find(s, 's') points to s[\" , p , \"].\"\n", "p = s.find(\"is\")\n", "print \"strstr(s, \\\"is\\\") points to s[\" , p , \"].\"\n", "p = s.find(\"isi\")\n", "if p== -1:\n", " print 's.find(\"isi\") returns NULL'\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "s = \" The Mississippi is a long river. \"\n", "find(s, ' ') points to s[ 3 ].\n", "find(s, 's') points to s[ 6 ].\n", "reverse find(s, 's') points to s[ 17 ].\n", "strstr(s, \"is\") points to s[ 5 ].\n", "s.find(\"isi\") returns NULL\n" ] } ], "prompt_number": 16 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.15, page no. 195" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s1 = \"ABCDEFG\"\n", "s2 = \"XYZ\" \n", "print \"Before strcpy(s1,s2):\\n\" \n", "print \"\\ts1 = [\" , s1 , \"], length = \" , len(s1) \n", "print \"\\ts2 = [\" , s2 , \"], length = \" , len(s2) \n", "s1 = s2\n", "print \"After strcpy(s1,s2):\\n\" \n", "print \"\\ts1 = [\" , s1 , \"], length = \" , len(s1) \n", "print \"\\ts2 = [\" , s2 , \"], length = \" , len(s2) \n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Before strcpy(s1,s2):\n", "\n", "\ts1 = [ ABCDEFG ], length = 7\n", "\ts2 = [ XYZ ], length = 3\n", "After strcpy(s1,s2):\n", "\n", "\ts1 = [ XYZ ], length = 3\n", "\ts2 = [ XYZ ], length = 3\n" ] } ], "prompt_number": 17 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.16, page no. 195" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s1 = \"ABCDEFG\"\n", "s2 = \"XYZ\" \n", "print \"Before strcpy(s1,s2,2):\\n\" \n", "print \"\\ts1 = [\" , s1 , \"], length = \" , len(s1) \n", "print \"\\ts2 = [\" , s2 , \"], length = \" , len(s2) \n", "s1 = s2[:2] + s1[2:]\n", "print \"After strcpy(s1,s2,2):\\n\" \n", "print \"\\ts1 = [\" , s1 , \"], length = \" , len(s1) \n", "print \"\\ts2 = [\" , s2 , \"], length = \" , len(s2) \n", "\n", "\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Before strcpy(s1,s2,2):\n", "\n", "\ts1 = [ ABCDEFG ], length = 7\n", "\ts2 = [ XYZ ], length = 3\n", "After strcpy(s1,s2,2):\n", "\n", "\ts1 = [ XYCDEFG ], length = 7\n", "\ts2 = [ XYZ ], length = 3\n" ] } ], "prompt_number": 18 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.17, page no. 196" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s1 = \"ABCDEFG\"\n", "s2 = \"XYZ\" \n", "print \"Before string concatination :\\n\" \n", "print \"\\ts1 = [\" , s1 , \"], length = \" , len(s1) \n", "print \"\\ts2 = [\" , s2 , \"], length = \" , len(s2) \n", "s1 += s2\n", "print \"After string concatination :\" \n", "print \"\\ts1 = [\" , s1 , \"], length = \" , len(s1) \n", "print \"\\ts2 = [\" , s2 , \"], length = \" , len(s2) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Before string concatination :\n", "\n", "\ts1 = [ ABCDEFG ], length = 7\n", "\ts2 = [ XYZ ], length = 3\n", "After string concatination :\n", "\ts1 = [ ABCDEFGXYZ ], length = 10\n", "\ts2 = [ XYZ ], length = 3\n" ] } ], "prompt_number": 19 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.18, page no. 197" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s1 = \"ABCDEFG\"\n", "s2 = \"XYZ\" \n", "print \"Before string concatination :\\n\" \n", "print \"\\ts1 = [\" , s1 , \"], length = \" , len(s1) \n", "print \"\\ts2 = [\" , s2 , \"], length = \" , len(s2) \n", "s1 += s2[:2]\n", "print \"After string concatination :\" \n", "print \"\\ts1 = [\" , s1 , \"], length = \" , len(s1) \n", "print \"\\ts2 = [\" , s2 , \"], length = \" , len(s2) " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Before string concatination :\n", "\n", "\ts1 = [ ABCDEFG ], length = 7\n", "\ts2 = [ XYZ ], length = 3\n", "After string concatination :\n", "\ts1 = [ ABCDEFGXY ], length = 9\n", "\ts2 = [ XYZ ], length = 3\n" ] } ], "prompt_number": 20 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.19, page no. 197" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s = \"Today's date is March 12, 2000.\"\n", "\n", "print \"The string is: [\" , s , \"] \\nIts tokens are: \"\n", "p = s.split(\" \")\n", "\n", "for i in p:\n", " print \"\\t[\" , i , \"] \"\n", "\n", "print \"Now the string is: [\" , p[0] , \"] \";\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The string is: [ Today's date is March 12, 2000. ] \n", "Its tokens are: \n", "\t[ Today's ] \n", "\t[ date ] \n", "\t[ is ] \n", "\t[ March ] \n", "\t[ 12, ] \n", "\t[ 2000. ] \n", "Now the string is: [ Today's ] \n" ] } ], "prompt_number": 21 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Example 8.20, page no. 199" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def strpbrk(s,s1):\n", " found = []\n", " for i in range(len(s1)):\n", " if s1[i] in s:\n", " index = s.find(s1[i])\n", " found.append(index)\n", " if found:\n", " return min(found)\n", " return None\n", " \n", "\n", "s = \"The Mississippi is a long river.\"\n", "print 's = \"' , s , '\"'\n", "p = strpbrk(s, \"nopqr\")\n", "print 'strpbrk(s, \"nopqr\") points to s[' , p , \"].\"\n", "p = strpbrk(s, \"NOPQR\")\n", "if (p == None):\n", " print 'strpbrk(s, \"NOPQR\") returns NULL.\\n'" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "s = \" The Mississippi is a long river. \"\n", "strpbrk(s, \"nopqr\") points to s[ 12 ].\n", "strpbrk(s, \"NOPQR\") returns NULL.\n", "\n" ] } ], "prompt_number": 22 } ], "metadata": {} } ] }