{"id":268,"date":"2011-09-17T13:19:00","date_gmt":"2011-09-17T05:19:00","guid":{"rendered":"http:\/\/wangkaixuan.tech\/?p=268"},"modified":"2020-06-06T13:20:10","modified_gmt":"2020-06-06T05:20:10","slug":"%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84_%e4%b8%b2_%e4%b8%b2%e7%9a%84%e4%b8%80%e4%ba%9b%e6%93%8d%e4%bd%9c_c%e5%ae%9e%e7%8e%b0","status":"publish","type":"post","link":"http:\/\/www.wangkaixuan.tech\/?p=268","title":{"rendered":"\u6570\u636e\u7ed3\u6784_\u4e32_\u4e32\u7684\u4e00\u4e9b\u64cd\u4f5c_C++\u5b9e\u73b0"},"content":{"rendered":"\n<p>head.h<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include&lt;iostream>\n#include&lt;string>\nusing namespace std;\n\nclass STRING\n{\npublic:\n\tSTRING();\n\tvoid GetString();\n\tvoid GetSubString();\n\tvoid Index();\n\tvoid Print();\nprivate:\n\tvoid Index1();\n\tvoid Index2();\n\tbool Match(int);\n\tstring str;\n\tstring sub;\n\tint strlen;\n\tint sublen;\n\tint pos;\n};\n\nSTRING::STRING()\n{\n\tstr.clear();\n\tsub.clear();\n\tpos = strlen = sublen = 0;\n}\n\nvoid STRING::GetString()\n{\n\tcout &lt;&lt; \"Please Input The MainString :\" &lt;&lt; endl &lt;&lt; endl;\n\tcin >> str;\n\tstrlen = str.length();\n}\n\nvoid STRING::GetSubString()\n{\n\tcout &lt;&lt; \"Please Input The SubString :\" &lt;&lt; endl &lt;&lt; endl;\n\tcin >> sub;\n\tsublen = sub.length();\n}\n\nvoid STRING::Index()\n{\n\tcout &lt;&lt; \"Index Called !\" &lt;&lt; endl &lt;&lt; endl;\n\tcout &lt;&lt; \"Which Position Do You Want To Start Your Index ?\" &lt;&lt; endl &lt;&lt; endl;\n\tcin >> pos;\n\tpos--;\n\tcout &lt;&lt; \"Which Method Do You Want To Use ?\" &lt;&lt; endl &lt;&lt; endl;\n\tcout &lt;&lt; \"1 . Simple Method .\" &lt;&lt; endl &lt;&lt; \"2 . Improvement Method .\" &lt;&lt; endl\n\t\t\t&lt;&lt; endl;\n\tchar choice;\n\tcin >> choice;\n\tswitch (choice)\n\t{\n\tcase '1':\n\t\tIndex1();\n\t\tbreak;\n\tcase '2':\n\t\tIndex2();\n\t\tbreak;\n\tdefault:\n\t\tcout &lt;&lt; \"No Such Method !\" &lt;&lt; endl &lt;&lt; endl;\n\t\tbreak;\n\t}\n}\n\nvoid STRING::Index1()\n{\n\tcout &lt;&lt; \"Simple Method Called !\" &lt;&lt; endl &lt;&lt; endl;\n\tif (pos > strlen - sublen)\n\t{\n\t\tcout &lt;&lt; \"Failed !\" &lt;&lt; endl &lt;&lt; endl;\n\t\treturn;\n\t}\n\tint i, j;\n\ti = pos;\n\tj = 0;\n\twhile (i &lt; strlen &amp;&amp; j &lt; sublen)\n\t{\n\t\tif (str&#91;i] == sub&#91;j])\n\t\t{\n\t\t\ti++;\n\t\t\tj++;\n\t\t}\n\t\telse\n\t\t{\n\t\t\ti = i - j + 1;\n\t\t\tj = 0;\n\t\t}\n\t}\n\tif (j == sublen)\n\t{\n\t\tcout &lt;&lt; \"Succed ! \" &lt;&lt; \" Position = \" &lt;&lt; i - j + 1 &lt;&lt; endl &lt;&lt; endl;\n\t}\n\telse\n\t{\n\t\tcout &lt;&lt; \"Failed !\" &lt;&lt; endl &lt;&lt; endl;\n\t}\n}\n\nvoid STRING::Index2()\n{\n\tcout &lt;&lt; \"ImproveMent Method Called !\" &lt;&lt; endl &lt;&lt; endl;\n\tint i, j;\n\ti = pos;\n\tj = 0;\n\twhile (i &lt;= strlen - sublen &amp;&amp; j &lt; sublen)\n\t{\n\t\tif (str&#91;i] == sub&#91;j] &amp;&amp; str&#91;i + sublen - 1] == sub&#91;sublen - 1]\n\t\t\t\t&amp;&amp; Match(i))\n\t\t{\n\t\t\tcout &lt;&lt; \"Succed ! \" &lt;&lt; \" Position = \" &lt;&lt; i - j + 1 &lt;&lt; endl &lt;&lt; endl;\n\t\t\treturn;\n\t\t}\n\t\telse\n\t\t{\n\t\t\ti++;\n\t\t\tj = 0;\n\t\t}\n\t}\n\tcout &lt;&lt; \"Failed !\" &lt;&lt; endl &lt;&lt; endl;\n}\n\nvoid STRING::Print()\n{\n\tcout &lt;&lt; \"Main String = \" &lt;&lt; str &lt;&lt; endl &lt;&lt; \" Length = \" &lt;&lt; strlen &lt;&lt; endl;\n\tcout &lt;&lt; \"SubString = \" &lt;&lt; sub &lt;&lt; endl &lt;&lt; \" Length = \" &lt;&lt; sublen &lt;&lt; endl\n\t\t\t&lt;&lt; endl;\n}\n\nbool STRING::Match(int i)\n{\n\tfor (int j = 0; j &lt; sublen; j++)\n\t{\n\t\tif (str&#91;i + j] != sub&#91;j])\n\t\t\treturn false;\n\t}\n\treturn true;\n}\n<\/code><\/pre>\n\n\n\n<p>main.cpp<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include&lt;iostream>\n#include\"head.h\"\nusing namespace std;\n\nint main()\n{\n\tSTRING str;\n\tchar choice;\n\twhile (1)\n\t{\n\t\tcout &lt;&lt; \"Your Choice Please ?\" &lt;&lt; endl &lt;&lt; endl &lt;&lt; \"1 . Set Main String\"\n\t\t\t\t&lt;&lt; endl &lt;&lt; \"2 . Set SubString\" &lt;&lt; endl &lt;&lt; \"3 . Index\" &lt;&lt; endl\n\t\t\t\t&lt;&lt; \"4 . Print\" &lt;&lt; endl &lt;&lt; \"5 . Quit\" &lt;&lt; endl &lt;&lt; endl;\n\t\tcin >> choice;\n\t\tswitch (choice)\n\t\t{\n\t\tcase '1':\n\t\t\tstr.GetString();\n\t\t\tbreak;\n\t\tcase '2':\n\t\t\tstr.GetSubString();\n\t\t\tbreak;\n\t\tcase '3':\n\t\t\tstr.Index();\n\t\t\tbreak;\n\t\tcase '4':\n\t\t\tstr.Print();\n\t\t\tbreak;\n\t\tcase '5':\n\t\t\treturn 0;\n\t\tdefault:\n\t\t\tcout &lt;&lt; \"No Such Choice !\" &lt;&lt; endl;\n\t\t\tbreak;\n\t\t}\n\t}\n}\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>head.h main.cpp<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-268","post","type-post","status-publish","format-standard","hentry","category-06-02-"],"_links":{"self":[{"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=\/wp\/v2\/posts\/268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=268"}],"version-history":[{"count":0,"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=\/wp\/v2\/posts\/268\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=268"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.wangkaixuan.tech\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}