promotion image of download ymail app
Promoted
匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 7 年前

string 搜尋 [C語言]

To see a world in a grain of sand,

And a heaven in a wild fllower,

Hold infinity in the palm of your hand,

And eternity in an hour.

宣告 string str1,為英文短文

輸入兩個string (pattern,pattern2)

印出兩個string長度

比較兩個string是否相同 (使用pattern.compare(pattern2)

在str1中搜尋pattern

已更新項目:

簡報就這樣@@

學得是C語言

不過字串這章

他就不是講課本的簡報是另外資料的簡報

可能就c++搭配吧

請大大教教我

比較兩個string是否相同 (使用pattern.compare(pattern2)

在str1中搜尋pattern

不會弄 :(

2 個已更新項目:

有神人能用完整的程式碼給參考嗎?

跪求

3 個已更新項目:

Visual Studio Express 好像C跟C++標頭檔弄好就..

不清楚 好吧 沒人知道就...

4 個解答

評分
  • 卸貨
    Lv 5
    7 年前
    最佳解答

    矛盾!你要使用 C 語言,又要 string str1,這不是找碴嗎?

    2012-12-19 23:20:24 補充:

    C 語言並沒有 string 這種東西,C 語言只有 "字串陣列",或稱為 C-Style String。

    下面貼上兩種語言的用法:

    // ==== 建立短文 ====

    // C

    char str1[] = "To see a world in a grain of sand,\n And a heaven in a wild fllower,\n Hold infinity in the palm of your hand,\n And eternity in an hour.";

    // C++

    string str1("To see a world in a grain of sand,\n And a heaven in a wild fllower,\n Hold infinity in the palm of your hand,\n And eternity in an hour.");

    // ==== 讀取字串 ====

    // C

    char pattern[100], pattern2[100];

    scanf("%99s", pattern);

    scanf("%99s", pattern2);

    // C++

    string pattern, pattern2;

    cin >> pattern >> pattern2;

    // ==== 取得自串長度 ====

    // C

    int Len = strlen(pattern);

    // C++

    int Len = pattern.length();

    // ==== 比較字串 ====

    // C

    int bEqual = ( 0 == strncmp(pattern,pattern2,100) );

    // C++

    bool Equal = ( 0 == pattern.compare(pattern2) );

    // ==== 搜尋自串 ====

    // C

    char *Target = strstr(str1,pattern); // 如果沒找到,Target 會是 NULL。

    int TargetInd = Target - str1;

    // C++

    int TargetInd = str1.find(pattern); // 如果沒找到,TargetInd 會是 string::npos。

    // ==== 各函式的詳細說明 ====

    // C

    http://www.cplusplus.com/reference/cstring/

    // C++

    http://www.cplusplus.com/reference/string/string/

    2012-12-19 23:23:42 補充:

    忘了告訴你,C 語言並沒有 string,C++ 才有 string 這個 "類別" 可以使用。

    什麼是 "類別"?若你只學過 C 語言的話其時也可以把它想成是一種新的形態,一種除了 int, float, char 等等以外的自定義形態。

    • Commenter avatar登入以對解答發表意見
  • 匿名使用者
    7 年前

    會得人就用C語言弄阿

    糾結老師C++

    XD (眾歐

    • Commenter avatar登入以對解答發表意見
  • 7 年前

    感覺很矛盾。。。只學過C語言,沒學過C++物件导向的話,直接使用string類別。。會很不適應的。。。這涉及物件導向程式了。。

    • Commenter avatar登入以對解答發表意見
  • 阿平
    Lv 4
    7 年前

    你老師這樣教太奇怪了吧?給你網站參考。

    C語言的string函式庫

    http://www.cplusplus.com/reference/cstring/

    C++的String類別

    http://www.cplusplus.com/reference/string/string/

    • Commenter avatar登入以對解答發表意見
還有問題?馬上發問,尋求解答。