atoi和stoi都是用來將字符串轉(zhuǎn)換為整數(shù)的函數(shù),但它們之間有一些區(qū)別:
atoi是一個C語言標(biāo)準(zhǔn)庫函數(shù),需要包含頭文件
atoi只能轉(zhuǎn)換C風(fēng)格的字符串(即以空字符結(jié)尾的字符數(shù)組),而stoi可以接受C++的std::string類型作為參數(shù)。
atoi在轉(zhuǎn)換失敗時返回0,而stoi會拋出一個std::invalid_argument異常。
stoi還提供了一些額外的功能,比如可以指定進(jìn)制進(jìn)行轉(zhuǎn)換(默認(rèn)為十進(jìn)制)、允許在字符串前面有空格等。
總的來說,建議在C++中使用stoi函數(shù)進(jìn)行字符串轉(zhuǎn)換,因為它更加安全、方便,并提供了更多的功能。