回覆列表
  • 1 # 使用者6207624500948

    怎麼說呢,我自己的理解,這應該是兩個東西。

    scanf是C語言裡面的東西

    string是C++裡面的東西

    剛開始學習C++的時候,很多人為了理解方便,將string型別強行解釋為和C語言中的字串,但是不是的。

    string是一個類,由這個類定義的變數被稱為string型別,裡面各種符號被過載,因為C++想可以的讓string成為一個封裝更好的字串,你可以使用裡面的resize函式開闢大小,使用c_str將他轉換成C風格的字串,但是他追根到底其實和字串是有區別的。

    而scanf是C語言裡面的用來給有個格式的變數賦值的,比如:%d-->int型別這種非自定義型別的變數賦值,但是你有見過使用scanf給自定義的型別賦值的嗎?

    而且string屬於面向物件裡面的用法,C語言是不具有面向物件的特性的~

    雖然我沒有試,到底能不能使用scanf給string型別複製,但是在實際開發中規範的使用還是儘量C語言和C++不要混編

    當然。非要混編的時候,我們也不能全部避免,但是還是小心使用。

    --------------------------this is a 分割線-------------------------------------

    建議可以在網上查詢string類的原始碼,不是很難,看一下大概意思,就能明白這玩意到底是幹什麼的~

    【DY_1024的部落格】進階的小白 - CSDN部落格

  • 中秋節和大豐收的關聯?
  • 高中地理中人文地理包括哪些?