1.使用string的find_first_not_of,和find_last_not_of方法
1 #include <iostream> 2 #include <string> 3 4 std::string& trim(std::string &); 5 6 int main() 7 { 8 std::string s = " Hello World!! "; 9 std::cout << s << " size:" << s.size() << std::endl; 10 std::cout << trim(s) << " size:" << trim(s).size() << std::endl; 11 12 return 0; 13 } 14 15 std::string& trim(std::string &s) 16 { 17 if (s.empty()) 18 { 19 return s; 20 } 21 22 s.erase(0,s.find_first_not_of(" ")); 23 s.erase(s.find_last_not_of(" ") + 1); 24 return s; 25 }
給你提供了一個remove_space(string& str)函數,把要去掉空格的串str傳入函數即可,函數返回後,str中的內容即被前後去除了多余的空格。 不明白的地方可以hi我
#include<string>
using namespace std;
void remove_space(string& str){
string buff(str);
char space = ' ';
str.assign(buff.begin() + buff.find_first_not_of(space),
buff.begin() + buff.find_last_not_of(space) + 1);
}
測試:
(1)前後有若干個空格的情況,輸入" abc ",輸出:"abc"
(2)前後有若干空格,且字符串中間也夾雜著若干空格的情況,輸入" a b cd ", 輸出:"a b cd"
相信這就是你要的
字符串反轉,OC本身沒有自帶字符串反轉的直接方法,但是有字符串遍歷的方法,我們可以設置遍歷選項:
NSString * string = @"abcdefg hijklmn"; NSMutableString * outputString = [NSMutableString string]; // NSStringEnumerationReverse :表示反向遍歷 // NSStringEnumerationByComposedCharacterSequences : 表示按字符遍歷 [string enumerateSubstringsInRange:NSMakeRange(0, string.length) options:NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) { [outputString appendString:substring]; }]; NSLog(@"%@",outputString);
這樣就實現了字符串反轉
清除空格,同樣使用字符串遍歷:
NSString * string = @" abcdefg hijklmn s d "; NSMutableString * outputString = [NSMutableString string]; // NSStringEnumerationByWords:將string按空格分開,並且會自動清理首尾的空格 // 這個方法會把中間多余的空格也清理掉,比如上面的字符串,s和d之間有兩個空格,會變成一個空格 [string enumerateSubstringsInRange:NSMakeRange(0, string.length) options:NSStringEnumerationByWords usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) { [outputString appendFormat:@"%@ ",substring]; }]; // 刪除我們添加的末尾的一個空格 [outputString deleteCharactersInRange:NSMakeRange(outputString.length-1, 1)]; NSLog(@"%@",outputString);輸出:
abcdefg hijklmn s d
如果你想保留字符串內的空格,那麼按下面這個比較麻煩的方法:
NSString * string = @" abcdefg hijklmn s d "; NS......余下全文>>