• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            syhd142  
            日歷
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567
            統(tǒng)計
            • 隨筆 - 23
            • 文章 - 122
            • 評論 - 31
            • 引用 - 0

            導航

            常用鏈接

            留言簿(2)

            隨筆檔案(23)

            文章分類(270)

            文章檔案(122)

            我的豆瓣

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

             
            原文地址;http://topic.csdn.net/u/20070402/18/7111613b-c5e4-485e-a5d0-33de9aebbaea.html
            c++中 string與string.h 的作用和區(qū)別
            #include <string.h>   
             
            void main()   
            {   
              string aaa= "abcsd d";   
              printf("looking for abc from abcdecd %s\n",   
              (strcmp(aaa,"abc")) ? "Found" : "Not Found");   
             
            }   
            不能正確執(zhí)行,提示說是string類型沒有定義   
            而下面:   
            #include <string>   
             
            using namespace std;   
            void main()   
            {   
              string aaa= "abcsd d";   
              printf("looking for abc from abcdecd %s\n",   
              (strcmp(aaa,"abc")) ? "Found" : "Not Found");   
            }   
            這里的string編譯器就認識了,但是strcmp就不認識了呢?   
            一般一個C++的老的帶“.h”擴展名的庫文件,比如iostream.h,在新標準后的標準庫中都有一個不帶“.h”擴展名的相對應,區(qū)別除了后者的好多改進之外,還有一點就是后者的東東都塞進了“std”名字空間中。   
             
            但唯獨string特別。   
            問題在于C++要兼容C的標準庫,而C的標準庫里碰巧也已經(jīng)有一個名字叫做“string.h”的頭文件,包含一些常用的C字符串處理函數(shù),比如樓主提到的strcmp。   
            這個頭文件跟C++的string類半點關系也沒有,所以<string>并非<string.h>的“升級版本”,他們是毫無關系的兩個頭文件。   
            要達到樓主的目的,比如同時:   
            #include <string.h>   
            #include <string>   
            using namespace std;   
            或者   
            #include <cstring>   
            #include <string>   
             
            其中<cstring>是與C標準庫的<string.h>相對應,但裹有std名字空間的版本。
            笑談(來自高質量++)
            C++標準庫很大。非常大。難以置信的大。怎么個大法?這么說吧:在C++標準中,關于標準庫的規(guī)格說明占了密密麻麻300 多頁,這還不包括標準C 庫,后者只是"作為參考"(老實說,原文就是用的這個詞)包含在C++庫中。當然,并非總是越大越好,但在現(xiàn)在的情況下,確實越大越好,因為大的庫會包含大量的功能。標準庫中的功能越多,開發(fā)自己的應用程序時能借助的功能就越多。C++庫并非提供了一切(很明顯的是,沒有提供并發(fā)和圖形用戶接口的支持),但確實提供了很多。幾乎任何事你都可以求助于它。在歸納標準庫中有些什么之前,需要介紹一下它是如何組織的。因為標準庫中東西如此之多,你(或象你一樣的其他什么人)所選擇的類名或函數(shù)名就很有可能和標準庫中的某個名字相同。為了避免這種情況所造成的名字沖突,實際上標準庫中的一切都被放在名字空間std 中(參見條款28)。但這帶來了一個新問題。無數(shù)現(xiàn)有的C++代碼都依賴于使用了多年的偽標準庫中的功能,例如,聲明在<iostream.h>,<complex.h>,<limits.h>等頭文件中的功能。現(xiàn)有軟件沒有針對使用名字空間而進行設計,如果用std 來包裝標準庫導致現(xiàn)有代碼不能用,將是一種可恥行為。(這種釜底抽薪的做法會讓現(xiàn)有代碼的程序員說出比"可恥" 更難聽的話)懾于被激怒的程序員會產生的破壞力,標準委員會決定為包裝了std 的那部分標準庫構件創(chuàng)建新的頭文件名。生成新頭文件的方法僅僅是將現(xiàn)有C++頭文件名中的.h 去掉,方法本身不重要,正如最后產生的結果不一致也并不重要一樣。所以<iostream.h>變成了<iostream>,<complex.h>變成了<complex>,等等。對于C 頭文件,采用同樣的方法,但在每個名字前還要添加一個c。所以C 的<string.h>變成了<cstring>,<stdio.h>變成了<cstdio>,等等。最后一點是,舊的C++頭文件是官方所反對使用的(即,明確列出不再支持),但舊的C 頭文件則沒有(以保持對C 的兼容性)。實際上,編譯器制造商不會停止對客戶現(xiàn)有軟件提供支持,所以可以預計,舊的C++頭文件在未來幾年內還是會被支持。所以,實際來說,下面是C++頭文件的現(xiàn)狀:舊的C++頭文件名如<iostream.h>將會繼續(xù)被支持,盡管它們不在官方標
            準中。這些頭文件的內容不在名字空間std 中。新的C++頭文件如<iostream>包含的基本功能和對應的舊頭文件相同,但頭文件的內容在名字空間std 中。(在標準化的過程中,庫中有些部分的細節(jié)被修改了,所以舊頭文件和新頭文件中的實體不一定完全對應。)標準C 頭文件如<stdio.h>繼續(xù)被支持。頭文件的內容不在std 中。
            具有C 庫功能的新C++頭文件具有如<cstdio>這樣的名字。它們提供的內容和相應的舊C 頭文件相同,只是內容在std 中。所有這些初看有點怪,但不難習慣它。最大的挑戰(zhàn)是把字符串頭文件理清楚:<string.h>是舊的C 頭文件,對應的是基于char*的字符串處理函數(shù);<string>是包裝了std 的C++頭文件,對應的是新的string 類(看下文);<cstring>是對應于舊C 頭文件的std 版本。如果能掌握這些(我相信你能),其余的也就容易了。
            posted on 2011-02-13 00:49 Fucker 閱讀(1227) 評論(0)  編輯 收藏 引用
             
            Copyright © Fucker Powered by: 博客園 模板提供:滬江博客
            久久精品国产亚洲精品2020| 精品久久久久中文字幕日本| 欧美国产精品久久高清| 久久国产综合精品五月天| 日韩人妻无码一区二区三区久久99| 精品国产乱码久久久久久呢| 久久国产精品99久久久久久老狼| 婷婷综合久久中文字幕| 色99久久久久高潮综合影院| 久久综合香蕉国产蜜臀AV| 亚洲国产成人久久精品动漫| 色狠狠久久综合网| 久久成人精品视频| 狠狠精品久久久无码中文字幕 | 国产高清美女一级a毛片久久w| 欧美亚洲国产精品久久| 国产精品免费看久久久| 伊人久久大香线蕉综合网站| 久久精品一区二区| 99久久国产综合精品女同图片 | 香蕉久久影院| 91视频国产91久久久| 日本WV一本一道久久香蕉| 久久国产成人午夜AV影院| 精品久久久无码人妻中文字幕豆芽| 欧洲国产伦久久久久久久| 四虎国产精品免费久久5151| 久久久无码精品亚洲日韩蜜臀浪潮| 久久99热这里只有精品国产| 久久国产精品-国产精品| 久久精品中文无码资源站| 亚洲国产成人精品女人久久久 | 色婷婷综合久久久久中文| 免费无码国产欧美久久18| 理论片午午伦夜理片久久| 国产精品美女久久久免费| 久久国产精品99精品国产| 久久综合亚洲欧美成人| 久久综合88熟人妻| 秋霞久久国产精品电影院| 热久久这里只有精品|