[cpp]file *fp=_tfopen(szxmlfilepath,l"rb");
if (fp==null)
return;
fseek(fp,0,seek_end);
uint nlen=ftell(fp);
fseek(fp,0,seek_set);
// 寬字元型別
wchar_t* pstr_read = new
wchar_t[nlen/2+1]; // 分配空間
memset(pstr_read,0,sizeof(wchar_t)*(nlen/2+1)); // 清空
fread(pstr_read,1,nlen,fp);
fclose(fp);
file *fp=_tfopen(szxmlfilepath,l"rb");
if (fp==null)
return;
fseek(fp,0,seek_end);
uint nlen=ftell(fp);
fseek(fp,0,seek_set);
// 寬字元型別
wchar_t* pstr_read = new wchar_t[nlen/2+1]; // 分配空間
memset(pstr_read,0,sizeof(wchar_t)*(nlen/2+1)); // 清空
fread(pstr_read,1,nlen,fp);
fclose(fp);
pstr_read儲存的是字串,要在這個字串中判斷 是否包含子字串substr
方法一:轉換為csting 使用cstring::find()
[cpp]cstring substr=l"你好";
cstring xmldata=pstr_read;
delete pstr_read; // 釋放空間
if (xmldata.find(substr)!=-1)
cstring substr=l"你好";
cstring xmldata=pstr_read;
delete pstr_read; // 釋放空間
if (xmldata.find(substr)!=-1)
方法二:使用字串搜尋函式_tcsstr()
[cpp]view plain
copy
print?
cstring substr=l"你好";
if (_tcsstr(pstr_read,substr))
cstring substr=l"你好";
if (_tcsstr(pstr_read,substr))
方法三: 使用kmp匹配演算法
[cpp]view plain
copy
print?
int next[20] =;
void next(wchar_t* p,int *next)
else
//p[j]!=p[k]
k=next[k];
} }
//des是目標串,pat是模式串,len1和len2是串的長度
int kmp(wchar_t des,int len1,wchar_t pat,int len2)
else
else
} } if(p < len2)//整個過程匹配失敗
return s-len2;
}
int next[20] =;
void next(wchar_t* p,int *next)
左旋字串的三種方法
注 有效次數為 總次數 n 如上圖所示,假設對字串左旋6次和左旋2次,得到的結果是一樣的 思路 include include include include pragma warning disable 4996 遮蔽scanf出現的錯誤 char a abcd1234 變數定義成全域性較好 in...
NSString字串擷取三種方法
1.定義乙個字串a,擷取a 的某乙個專案組,複製給b,b必須是int型 nsstring a 1.2.30 int b a substringwithrange nsmakerange 4,2 intvalue nslog a n a nslog b d b 解析如下 substringwithra...
php反轉字串的三種方法
假設有字串abcd,用php實現字串翻轉 1.第一種php有自帶的函式strrev可以輕鬆實現 str abcd 第一種自帶strrev實現翻轉 echo strrev str 輸出效果 2.就是把分割字串到乙個陣列中,然後遍歷拼接 function joinstrrev str return ne...