在C++中,使用string.substr
函數處理空字符串時,需要注意一些問題。首先,string.substr
函數的第一個參數表示要提取的子字符串的起始位置,第二個參數表示要提取的子字符串的長度。如果第一個參數指定的起始位置超出了字符串的長度,或者第二個參數指定的長度超出了剩余字符串的長度,string.substr
函數會拋出out_of_range
異常。
如果要處理空字符串,可以先檢查字符串是否為空,然后再調用string.substr
函數。例如:
std::string str = "";
if (!str.empty()) {
std::string substr = str.substr(0, 2);
std::cout << substr << std::endl;
} else {
std::cout << "String is empty" << std::endl;
}
在上面的示例中,首先檢查str
是否為空,如果不為空則調用str.substr(0, 2)
提取子字符串。如果字符串為空,則輸出"String is empty"。這樣可以避免在處理空字符串時出現異常。