⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linux tutorial - c++ string class tutorial.mht

📁 linux下c++编程的好文章
💻 MHT
📖 第 1 页 / 共 5 页
字号:
        <TABLE cellSpacing=3D1 cellPadding=3D4 width=3D"100%" =
bgColor=3D#000000=20
border=3D1>
          <TBODY>
          <TR bgColor=3D#c0c0c0>
            <TD><PRE>#include &lt;string&gt;
#include &lt;iostream&gt;

using namespace std;

// Helper routine ps to print a string class variable.

void ps(string&amp; s){ cout &lt;&lt; s &lt;&lt; endl; }

int main()
{
   string a("String A");
   string b;

   b =3D "String B";

   cout &lt;&lt; "Hello!" &lt;&lt; endl;
}
    </PRE></TD></TR></TBODY></TABLE></DD></DL>
      <P>Compile program with symbolic code for the debugger: <TT>g++ -g =

      testprog.cpp</TT>=20
      <P>Start <TT>gdb</TT> debugger: <TT>gdb ./a.out</TT>=20
      <DL>
        <DD>
        <TABLE cellSpacing=3D1 cellPadding=3D4 width=3D"100%" =
bgColor=3D#000000=20
border=3D1>
          <TBODY>
          <TR bgColor=3D#c0c0c0>
            <TD><PRE>(gdb) l 1,18                             <B><I>- =
List lines 1 to 18</I></B>
1       #include &lt;string&gt;
2       #include &lt;iostream&gt;
3
4       using namespace std;
5
6       // Helper routine ps to print a string class variable.
7
8       void ps(string&amp; s){ cout &lt;&lt; s &lt;&lt; endl; }
9
10      int main()
11      {
12         string a("String A");
13         string b;
14
15         b =3D "String B";
16
17         cout &lt;&lt; "Hello!" &lt;&lt; endl;
18      }
(gdb) break 17
Breakpoint 1 at 0x804893b: file testprog.cpp, line 17.
(gdb) run
Starting program: /home/user1/a.out

Breakpoint 1, main () at testprog.cpp:17
17         cout &lt;&lt; "Hello!" &lt;&lt; endl;
(gdb) p a                                <B><I>- Gdb can't de-reference =
string class variable "a" </I></B>
$1 =3D {static npos =3D Cannot access memory at address 0x83a32d0
(gdb) call ps(a)
String A                                 <B><I>- Call helper function ps =
to print string conents.</I></B>
(gdb) call ps(b)
String B
(gdb) c
Continuing.
Hello!

Program exited normally.
(gdb) quit
    </PRE></TD></TR></TBODY></TABLE></DD></DL>With newer versions of =
gdb,=20
      one may use built-in string class functions:=20
      <DL>
        <DD>
        <TABLE cellSpacing=3D1 cellPadding=3D4 width=3D"100%" =
bgColor=3D#000000=20
border=3D1>
          <TBODY>
          <TR bgColor=3D#c0c0c0>
            <TD><PRE>(gdb) p a.c_str()
$1 =3D 0x8049e34 "String A"
(gdb) p b.c_str()
$3 =3D 0x8049e4c "String B"
(gdb) p b.empty()
$2 =3D false
(gdb) p b.size()
$4 =3D 8
    </PRE></TD></TR></TBODY></TABLE></DD></DL>
      <P>
      <HR SIZE=3D5>

      <TABLE cellSpacing=3D0 cellPadding=3D2 width=3D"100%" border=3D0>
        <TBODY>
        <TR bgColor=3D#ffcc33>
          <TD><B><BIG>Tips:</BIG></B></TD></TR></TBODY></TABLE>
      <P>
      <UL>
        <LI>The string class is NOT a native data type, it is an object =
class=20
        and thus can not be handled like the traditional pointer to =
variable in=20
        gdb.=20
        <LI>One can pass strings by reference (i.e. argument =
declarations using=20
        <TT>(string&amp; <I>variable-name</I> )</TT>), by value =
<TT>(string=20
        <I>variable-name</I> )</TT>, and by pointer <TT>(string=20
        *<I>variable-name</I> )</TT>.=20
        <LI>When using a reference, one may mimic the protection of a =
variable=20
        that passing by value enables by using <TT>(const string&amp;=20
        <I>variable-name</I> )</TT> </LI></UL>
      <P>
      <HR SIZE=3D5>

      <TABLE cellSpacing=3D0 cellPadding=3D2 width=3D"100%" border=3D0>
        <TBODY>
        <TR bgColor=3D#ffcc33>
          =
<TD><B><BIG>Links/Information:</BIG></B></TD></TR></TBODY></TABLE>
      <P>
      <UL>
        <LI><A =
href=3D"http://www.math.utah.edu/docs/info/libg++_19.html">GNU C++=20
        Library: String classes</A>=20
        <LI><A=20
        =
href=3D"http://www.yolinux.com/TUTORIALS/src/AIX-IStringTestCode.cpp">IBM=
=20
        AIX IString class example</A>=20
        <LI><A =
href=3D"http://www.sgi.com/tech/stl/basic_string.html">STL:=20
        basic_string</A> - SGI STL home=20
        <LI><A=20
        =
href=3D"http://www.yolinux.com/TUTORIALS/LinuxTutorialC++.html">YoLinux.c=
om:=20
        C++</A> </LI></UL>
      <P>
      <HR SIZE=3D5>

      <TABLE cellSpacing=3D0 cellPadding=3D2 width=3D"100%" border=3D0>
        <TBODY>
        <TR bgColor=3D#ffcc33>
          <TD vAlign=3Dtop><IMG=20
            =
src=3D"http://www.yolinux.com/TUTORIALS/images/book40.gif"><B><BIG>=20
            Books:</BIG></B></TD></TR></TBODY></TABLE>
      <P>
      <DL>
        <DD>
        <TABLE border=3D1 celpadding=3D"5">
          <TBODY>
          <TR>
            <TD><IMG=20
              =
src=3D"http://www.yolinux.com/BOOKS/0201379260.01.MZZZZZZZ.jpg"></TD>
            <TD vAlign=3Dtop>The C++ Standard Library: A Tutorial =
Reference=20
              <BR>Nicolai M. Josuttis <BR>ISBN #0201379260, Addison =
Wesley=20
              Longman=20
              <P>This book is the only book I have seen which covers =
string=20
              classes as implemented by current Linux distributions. It =
offers=20
              extensive coverage of the C++ string classes as well as =
fairly=20
              complete coverage of the C++ Standard Template Library =
(STL).=20
            </P></TD>
            <TD vAlign=3Dtop><A=20
              =
href=3D"http://www.amazon.com/exec/obidos/ASIN/0201379260/yolinux-20"><IM=
G=20
              alt=3DAmazon.com=20
              =
src=3D"http://www.yolinux.com/TUTORIALS/images/Amazon-BuyABook88x31.gif">=
</A>=20
              <BR><IMG height=3D1=20
              =
src=3D"http://service.bfast.com/bfast/serve?bfmid=3D2181&amp;sourceid=3D3=
9358384&amp;bfpid=3D0201379260&amp;bfmtype=3Dbook"=20
              width=3D1 border=3D0 NOSAVE><A=20
              =
href=3D"http://service.bfast.com/bfast/click?bfmid=3D2181&amp;sourceid=3D=
39358384&amp;bfpid=3D0201379260&amp;bfmtype=3Dbook"=20
              target=3D_top><IMG height=3D60=20
              =
src=3D"http://www.yolinux.com/TUTORIALS/images/BarnesNobles.gif"=20
              width=3D75></A> </TD></TR>
          <TR>
            <TD><IMG=20
              =
src=3D"http://www.yolinux.com/BOOKS/0131857576.01.MZZZZZZZ.jpg"></TD>
            <TD vAlign=3Dtop>C++ How to Program <BR>by Harvey M. Deitel, =
Paul J.=20
              Deitel <BR>ISBN #0131857576, Prentice Hall=20
              <P>Fifth edition. The first edition of this book (and =
Proffessor=20
              Sheely at UTA) taught me to program C++. It is complete =
and covers=20
              all the nuances of the C++ language. It also has good code =

              examples. Good for both learning and reference. </P>
            <TD vAlign=3Dtop><A=20
              =
href=3D"http://www.amazon.com/exec/obidos/ASIN/0131857576/yolinux-20"><IM=
G=20
              alt=3DAmazon.com=20
              =
src=3D"http://www.yolinux.com/TUTORIALS/images/Amazon-BuyABook88x31.gif">=
</A>=20
              <BR><IMG height=3D1=20
              =
src=3D"http://service.bfast.com/bfast/serve?bfmid=3D2181&amp;sourceid=3D3=
9358384&amp;bfpid=3D0131857576&amp;bfmtype=3Dbook"=20
              width=3D1 border=3D0 NOSAVE><A=20
              =
href=3D"http://service.bfast.com/bfast/click?bfmid=3D2181&amp;sourceid=3D=
39358384&amp;bfpid=3D0131857576&amp;bfmtype=3Dbook"=20
              target=3D_top><IMG height=3D60=20
              =
src=3D"http://www.yolinux.com/TUTORIALS/images/BarnesNobles.gif"=20
              width=3D75></A> =
</TD></TR></TBODY></TABLE></DD></DL></TD></TR></TBODY></TABLE>
<P>
<TABLE>
  <TBODY>
  <TR>
    <TD vAlign=3Dtop width=3D"60%">Return to <A=20
      href=3D"http://yolinux.com/">http://yolinux.com/</A> <BR>Return to =
<A=20
      href=3D"http://www.yolinux.com/TUTORIALS/index.html">YoLinux =
Tutorial=20
      Index</A> <BR><A=20
      href=3D"http://www.yolinux.com/YoLinuxEmailForm.html">Feedback =
Form</A>=20
      <P><SMALL>Copyright =C2=A9 2001, 2002, 2003, 2005 by <I>Greg=20
      Ippolito</I></SMALL> </P></TD>
    <TD vAlign=3Dtop align=3Dright><!-- BEGIN CODE -->
      <SCRIPT type=3Dtext/javascript><!--=0A=
google_ad_client =3D "pub-8567479315106986";=0A=
google_ad_width =3D 468;=0A=
google_ad_height =3D 60;=0A=
google_ad_format =3D "468x60_as";=0A=
google_ad_channel =3D"";=0A=
google_ad_type =3D "text_image";=0A=
google_color_border =3D ["336699","000000","DFF2FD","6699CC"];=0A=
google_color_bg =3D ["FFFFFF","F0F0F0","DFF2FD","003366"];=0A=
google_color_link =3D ["0000FF","0000FF","0000CC","FFFFFF"];=0A=
google_color_url =3D ["008000","008000","008000","AECCEB"];=0A=
google_color_text =3D ["000000","000000","000000","AECCEB"];=0A=
//--></SCRIPT>

      <SCRIPT =
src=3D"http://pagead2.googlesyndication.com/pagead/show_ads.js"=20
      type=3Dtext/javascript>=0A=
</SCRIPT>
<!-- END CODE --></TD></TR></TBODY></TABLE>
<P></P></BODY></HTML>

------=_NextPart_000_014D_01C776A8.A5A86B90
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.yolinux.com/TUTORIALS/images/book40.gif

R0lGODlhKwAtANX/AP//mf/Mmf+ZmczM/8DAwMzMmcyZ/8yZmcyZZsyZM5nMzJnMmZnMZpmZ/5mZ
zJmZmZmZZpmZM5lmzJlmmZlmZplmM5kzM2bMZmaZzGaZmWaZZmaZM2ZmzGZmmWZmZmZmM2ZmAGYz
ZmYzM2YzADOZZjOZMzNmmTNmZjNmMzMzZjMzMzMzADMAAAAzMwAzAAAAMwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAQALAAAAAArAC0AQAb/QIJw
SCwahw/V48g8PjyeTgqGgrlUn09V5VEtvuCFx4VSNZGeQWMt6VxR8DJV0/0+PtjKR6Ties4PHWpr
Ex1eCxqJKB8ICBUiIlmNk5OPgIJrDQ4dLYiJGpIUeiKPHignqKmof2dHXX2wjhUVIxUuMBkZJyon
ubowqFytRVBJiaYUEAUADB5WKBplww4qKSodDw8hKA+fiSrQGi5h5NHDgYMNGB1UKFCmMCt8ERB4
Kx8BAQKVIke8KCkeGMi0qZM3DyJkQdKDgEIZFC14ofpwxkMKB2s4dDjh6dMIWY8qrDilSkWLXr5y
wYAxrCWTLktcnlNBpg+rIV1kEkkCg4uG/z4iIAj90GKFhy/gFLloCQUGCxUbIBxd0O0btBKHyNkx
0+pJujYwPmh4QFXDnJ9aEcE6h4mNoY6K3KF48UFPllcfIDgKcSmdRhXRYKl4qmIFjEgVKFGydESB
hxVtG3R4622PwlqMKFEAtzImsT4Z/FL+dILRrD0V+rQ4qSpVE3SZ/sLVkHCWyEenJLaG4bmlhtm1
R+nhZVJFSl8qgO3SiRPWTQJJuOQ62ecA89fgXDy/PtODWbErVEB48mopd+hTYCjCIjRCmeTe1zMn
n+I9FaH1bv0O0ydwS2opdNCFNXjAQZN6GmCVFlW3nBOgBwVIBc4F3vwETR0L/sSWGhp1YP9CCrPB
kWBWWmnYVWTrUGFKHEkpGAZCQWmxYSbreOFBad6JWAI0eMwiAgoRrvRjX7Gx85s3ZbiwAgVZSBgW
BPo4ggKRhLDDBTQkfLBSeIUdlo9ijpxApTqjfZJYI7NYkBmYFUz5WmSyHWQaLR+oCaYjH2wnRGEb
hVakFxUyAkEFIJCSUCOv7CKREbxkcE06kwH6yQbBfVCLCOGlEFFrfL0EZ5mJJJTAI7UYpVtrFDEB
W0ag/iTLCKQYlUJrqeiJhArpbCLpJyrIYmkppwbTwo02ZVPEA9ZYw8Vsvdq2QiknzAqRccedcJKt
RHThzQbNzvIsHxn0dNx01HHV0gJDqGAVWwU9ZdOoLoLt0kJv5722i7XCFBEEADs=

------=_NextPart_000_014D_01C776A8.A5A86B90
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.yolinux.com/BOOKS/0201379260.01.MZZZZZZZ.jpg

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP
ERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4e
Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCACMAG8DASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -