C C 中字串問題彙總

2021-07-10 10:33:27 字數 1799 閱讀 4791

c/c++中的字串一般末尾都有預設的」0\「,所以一般都是n+1個開銷,容易造成越界。

char str[10];

strcpy(str, "0123456789");//報錯,因為str至少要11才能複製

執行下面的程式,結果是什麼?

char str1 = "hello";

char str2 = "hello";

if (str1 == str2)

cout << "str1 str2 are same" << endl;

char* str3 = "hello";

char* str4 = "hello";

if (str3 == str4)

cout << "str3 str4 same" << endl;

實際的結果是輸出str3 str4 same,這是因為為了節省記憶體,c++把常量字元放在單獨的記憶體區域,當指標賦值給相同的常量字串時,實際會指向相同的記憶體位址。也就是說str3和str4中的位址是一樣的。

得到帶空格的sting型別輸入,在c++中,string的處理是非常靈活的,但是會遇到cin>>str時,自動過濾空格的情況,這時候,怎麼辦。

如華為機考的一道題。

計算字串最後乙個單詞的長度,單詞以空格隔開。

輸入描述:

一行字串。

輸出描述:

整數n,最後乙個單詞的長度。

輸入例子:

hello world
輸出得到的是5,用cin>>str的話,就一直會報錯,因為,自動過濾了空格,這就用用到 getline(cin,str)。

#include#includeusing namespace std;

//要考慮邊界,就是當沒有' '的時候

int returnnum(string a)

i--; }

return len-i-1;

}int main()

轉換進製,輸入"0xa1"的16進製制字串,輸出十進位制,注意進製的轉換。

int turnde(string str)

else if ((str[i] >= 'a') && (str[i] <= 'f'))

temp = temp*pow(16, len-i-1);

count += temp;

} return count;

}

字串賦值,如下**,第一次編的時候,給str2賦值的時候,用了str2[i]=str1[len-i-1],這樣是不行的,要用+=的操作。

#include#include#includeusing namespace std;

int main()//目的,求一串字串中映象的長度,如12abba,abba為映象,那麼輸出為4

for (i = 0; i < len; i++)

count = (cnt>count) ? cnt : count;}}

cout << count << endl;

} return 0;

}

string中大小寫轉換的用法。

#include#includeusing namespace std;

int main()

cout << a;

} return 0;

}

C C 之字串問題

問題描述 給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母的大寫和小寫看作相同的字元。輸入格式 輸入的第一行包含乙個字串s,由大小寫英文本母組成。第二行包含乙個數字,表示大小...

C C 中的字串

getch函式 head file include conio.h 功能 從控制台無回顯的讀取乙個字元 用法 int void getch 該函式函式經常用於互動輸入的過程中完成暫停等功能 getche函式 head file include conio.h 功能 從控制台帶回顯的讀取乙個字元 用法...

字串彙總

字串的暴力,挺無腦的,沒什麼想說的。inline void init inline int query int l,int r 第一次是橫著hash,用的是p1,此時的 h 表示的是第 i 行長度為 j 的字首串的hash值。第二次是豎著hash,用的是p2,此時的 h 發生了更新,此時的 h 變成...