用C++統計字數


c++ 統計數字

37 个解决方案

#1


可以使用map<string,int>

每讀取文章的一個字先去查找map中sting是否有,有的話就int +1沒有的話就insert int 為0....

讀完后,遍歷map就可以了

#2


遍歷文件,把每一個元素按照要求的分類后,增加對應的計數器。

#3


引用 1 樓 xihu1364 的回復:
可以使用map<string,int>

每讀取文章的一個字先去查找map中sting是否有,有的話就int +1沒有的話就insert int 為0....

讀完后,遍歷map就可以了
有具體的程序嗎?

#4


這是C/C++課程布置的題目?若是的話,那就簡單得來,單詞個數看空格數目(設置個變量保存),漢字、標點符號看ASCII值,數字遍歷時死算。其實就是分別設置個變量保存(一個個字符判斷下去)

#5


引用 4 樓 linxin3333520 的回復:
這是C/C++課程布置的題目?若是的話,那就簡單得來,單詞個數看空格數目(設置個變量保存),漢字、標點符號看ASCII值,數字遍歷時死算。其實就是分別設置個變量保存(一個個字符判斷下去)
是作業,但是我是個小白,可以給個參考程序嗎?

#6


引用 5 樓 sinat_24552577 的回復:
Quote: 引用 4 樓 linxin3333520 的回復:

這是C/C++課程布置的題目?若是的話,那就簡單得來,單詞個數看空格數目(設置個變量保存),漢字、標點符號看ASCII值,數字遍歷時死算。其實就是分別設置個變量保存(一個個字符判斷下去)
是作業,但是我是個小白,可以給個參考程序嗎?

http://www.cnblogs.com/carekee/articles/1687318.html百度得來的,讀文件內容(對於作業,應該是小文件,可以參考;文件稍大點,可以一行行得讀,百度;若是大文件,另外百度);
讀完內容(內容存在buf中),你就根據這buf來一個個字符的判斷(只要設置變量保存值就,這是針對作業這么寫,其實不大好)。
至於原代碼,雖然我也是菜鳥,但從來都不習慣直接復制代碼來用,也不習慣發代碼給別人用;還是自己寫吧

#7


引用 5 樓 sinat_24552577 的回復:
Quote: 引用 4 樓 linxin3333520 的回復:

這是C/C++課程布置的題目?若是的話,那就簡單得來,單詞個數看空格數目(設置個變量保存),漢字、標點符號看ASCII值,數字遍歷時死算。其實就是分別設置個變量保存(一個個字符判斷下去)
是作業,但是我是個小白,可以給個參考程序嗎?

其實我想說,與其到論壇要原代碼,不如百度;自己看看要怎么實現,不懂知道百度(比如百度:VC判斷漢字數目,一個個來)

#8


引用 7 樓 linxin3333520 的回復:
Quote: 引用 5 樓 sinat_24552577 的回復:

Quote: 引用 4 樓 linxin3333520 的回復:

這是C/C++課程布置的題目?若是的話,那就簡單得來,單詞個數看空格數目(設置個變量保存),漢字、標點符號看ASCII值,數字遍歷時死算。其實就是分別設置個變量保存(一個個字符判斷下去)
是作業,但是我是個小白,可以給個參考程序嗎?

其實我想說,與其到論壇要原代碼,不如百度;自己看看要怎么實現,不懂知道百度(比如百度:VC判斷漢字數目,一個個來)
我知道怎么判斷,就是不會寫

#9


樓主應該把自己寫的源代碼貼出來

#10


引用 9 樓 wenpinglaoyao 的回復:
樓主應該把自己寫的源代碼貼出來
我只寫出了個英文的
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
typedef struct{
 string word;
 int num;
}count;
int main()
{
 vector<count> v; 
 count tempstr;
 tempstr.num=0;   
 ifstream infile("d:\\result.txt"); 
 if(!infile)
 {cout<<"the file opening is failure!"<<endl;
 return -1;
 }
 string temp;   
 string str;   
 int count=0;   
 int j=0;
 while(getline(infile,temp))
 {
  for(int i=0;i<temp.length ();i++)
  {
   if((temp[i]>='a'&&temp[i]<='z')||(temp[i]>='A'&&temp[i]<='Z'))
    count++;                        
   else if(count)                     
   {
    str=temp.substr (i-count,count);  
       if(v.size ())                 
    {
        for(j=0;j<v.size ();j++)
         if(str.compare(v[j].word )==0)
      {
            v[j].num ++;         
          count=0;              
          break;
      }
    }  
    if(j>=v.size ())                 
    {
     tempstr.word = str;
     tempstr.num =1;
     v.push_back (tempstr);
     count = 0;                    
    }
   } 
  }  
 } 
  for(int i=0;i<v.size ();i++)
  cout<<"the word is:"<<v[i].word<<", the times is:"<<v[i].num<<endl;
   return 0;
}
然后其他類型我改了if條件,但是不行,直接沒有出來結果

#11


難度不難,就是寫起來有點耗時,明天有空我來寫寫看

#12


僅供參考:
#include<iostream>
#include<map>
#include<string>
using namespace std;

int main(){
map<string, int> list;
string word;
while (cin >> word){
map<string, int>::iterator iter = list.find(word);
if (iter != list.end())
++(*iter).second;
else{
pair<string, int> p(word, 1);
list.insert(p);
}
}

map<string, int>::const_iterator iter = list.begin();
while (iter != list.end()){
cout << (*iter).first << ':' << (*iter).second << endl;
iter++;
}
}

#13


引用 12 樓 Falleyes 的回復:
僅供參考:
#include<iostream>
#include<map>
#include<string>
using namespace std;

int main(){
map<string, int> list;
string word;
while (cin >> word){
map<string, int>::iterator iter = list.find(word);
if (iter != list.end())
++(*iter).second;
else{
pair<string, int> p(word, 1);
list.insert(p);
}
}

map<string, int>::const_iterator iter = list.begin();
while (iter != list.end()){
cout << (*iter).first << ':' << (*iter).second << endl;
iter++;
}
}
謝謝啦,但是指針好難啊,可以幫忙講解一下嗎?

#14


引用 11 樓 Evankaka 的回復:
難度不難,就是寫起來有點耗時,明天有空我來寫寫看
加油,大神

#15


引用 13 樓 sinat_24552577 的回復:
Quote: 引用 12 樓 Falleyes 的回復:

僅供參考:
#include<iostream>
#include<map>
#include<string>
using namespace std;

int main(){
map<string, int> list;
string word;
while (cin >> word){
map<string, int>::iterator iter = list.find(word);
if (iter != list.end())
++(*iter).second;
else{
pair<string, int> p(word, 1);
list.insert(p);
}
}

map<string, int>::const_iterator iter = list.begin();
while (iter != list.end()){
cout << (*iter).first << ':' << (*iter).second << endl;
iter++;
}
}
謝謝啦,但是指針好難啊,可以幫忙講解一下嗎?

#include<iostream>
#include<map>
#include<string>
using namespace std;

int main(){
    map<string, int> list;
    string word;
    while (cin >> word){     //從控制台輸入流中讀取字符串,遇到EOF結束
        map<string, int>::iterator iter = list.find(word);   //定義map<string, int>類型的迭代器,
                                                                        //指向在list中尋找到鍵為word的鍵值對
        if (iter != list.end())     //如果在list中沒有這個鍵(單詞),那么iter指向的應該是鍵值對列表的最后
            ++(*iter).second;       //找到了這個鍵,那么讓該鍵值對的值增加1
        else{
            pair<string, int> p(word, 1);   //聲明一個鍵值對,pair<string,int>是map<string,int>的基本元素類型
                                                    //他存儲了這個要添加進去的新單詞,和他初始的出現次數1
            list.insert(p);        //如果鍵值對列表中沒有這個鍵值對,就把這個
        }
    }

    map<string, int>::const_iterator iter = list.begin();    //迭代器進行map輸出
    while (iter != list.end()){     //在沒有結束之前
        cout << (*iter).first << ':' << (*iter).second << endl;     //輸出
        iter++;
    }
}

#16


引用 15 樓 Falleyes 的回復:
Quote: 引用 13 樓 sinat_24552577 的回復:

Quote: 引用 12 樓 Falleyes 的回復:

僅供參考:
#include<iostream>
#include<map>
#include<string>
using namespace std;

int main(){
map<string, int> list;
string word;
while (cin >> word){
map<string, int>::iterator iter = list.find(word);
if (iter != list.end())
++(*iter).second;
else{
pair<string, int> p(word, 1);
list.insert(p);
}
}

map<string, int>::const_iterator iter = list.begin();
while (iter != list.end()){
cout << (*iter).first << ':' << (*iter).second << endl;
iter++;
}
}
謝謝啦,但是指針好難啊,可以幫忙講解一下嗎?

#include<iostream>
#include<map>
#include<string>
using namespace std;

int main(){
    map<string, int> list;
    string word;
    while (cin >> word){     //從控制台輸入流中讀取字符串,遇到EOF結束
        map<string, int>::iterator iter = list.find(word);   //定義map<string, int>類型的迭代器,
                                                                        //指向在list中尋找到鍵為word的鍵值對
        if (iter != list.end())     //如果在list中沒有這個鍵(單詞),那么iter指向的應該是鍵值對列表的最后
            ++(*iter).second;       //找到了這個鍵,那么讓該鍵值對的值增加1
        else{
            pair<string, int> p(word, 1);   //聲明一個鍵值對,pair<string,int>是map<string,int>的基本元素類型
                                                    //他存儲了這個要添加進去的新單詞,和他初始的出現次數1
            list.insert(p);        //如果鍵值對列表中沒有這個鍵值對,就把這個
        }
    }

    map<string, int>::const_iterator iter = list.begin();    //迭代器進行map輸出
    while (iter != list.end()){     //在沒有結束之前
        cout << (*iter).first << ':' << (*iter).second << endl;     //輸出
        iter++;
    }
}
這是統計英語的?英語的我已經弄出來了,求中文、數字和標點符號的

#17


以下代碼判斷是否是漢字


BOOL bExist = FALSE;
for(;i<=szName.GetLength();i++)
{
  bchar = (BYTE)szName[i];
  if(bchar > 127) 
    bExist = TRUE;
}

#18


奧~~~ 明白了,給你寫一個吧

#19


引用 18 樓 Falleyes 的回復:
奧~~~ 明白了,給你寫一個吧
謝謝啊,好感動啊

#20


試試這個吧!
#include<iostream>
#include<map>
#include<string>
#include<vector>
using namespace std;

int main(){
setlocale(LC_CTYPE, "chs");
wchar_t c;
vector<int> number(10);
map<wchar_t, int> punctuation;
map<wstring, int> words;
//setlocale(, "chs");
bool readword = false;
wstring word;
while ((c = getwchar()) != WEOF){
if ((c >= L'a'&&c <= 'z') || (c >= L'A'&&c <= L'Z')){
readword = true;
word += c;
continue;
}
else if (c <= L'9'&&c >= L'0'){
++number[c - L'0'];
}
else if (c == L' ' || c == L'\t' || c == L'\n'){
}
else{
auto r = punctuation.find(c);
if (r != punctuation.end())
++(*r).second;
else
punctuation.insert(pair<wchar_t, int>(c, 1));
}

readword = false;
if (!word.empty()){
auto iter = words.find(word);
if (iter != words.end())
++(*iter).second;
else
words.insert(pair<wstring, int>(word, 1));
word.clear();
}
}

//Print
for (int i = 0; i < number.size(); ++i){
if (number[i]!=0)
cout << i << ": " << number[i] << endl;
}
auto iter = punctuation.begin();
while (iter != punctuation.end()){
wcout << (*iter).first << ": " << (*iter).second << endl;
iter++;
}
auto iter2 = words.begin();
while (iter2 != words.end()){
wcout << (*iter2).first << ": " << (*iter2).second << endl;
iter2++;
}
}

#21


引用 20 樓 Falleyes 的回復:
試試這個吧!
#include<iostream>
#include<map>
#include<string>
#include<vector>
using namespace std;

int main(){
setlocale(LC_CTYPE, "chs");
wchar_t c;
vector<int> number(10);
map<wchar_t, int> punctuation;
map<wstring, int> words;
//setlocale(, "chs");
bool readword = false;
wstring word;
while ((c = getwchar()) != WEOF){
if ((c >= L'a'&&c <= 'z') || (c >= L'A'&&c <= L'Z')){
readword = true;
word += c;
continue;
}
else if (c <= L'9'&&c >= L'0'){
++number[c - L'0'];
}
else if (c == L' ' || c == L'\t' || c == L'\n'){
}
else{
auto r = punctuation.find(c);
if (r != punctuation.end())
++(*r).second;
else
punctuation.insert(pair<wchar_t, int>(c, 1));
}

readword = false;
if (!word.empty()){
auto iter = words.find(word);
if (iter != words.end())
++(*iter).second;
else
words.insert(pair<wstring, int>(word, 1));
word.clear();
}
}

//Print
for (int i = 0; i < number.size(); ++i){
if (number[i]!=0)
cout << i << ": " << number[i] << endl;
}
auto iter = punctuation.begin();
while (iter != punctuation.end()){
wcout << (*iter).first << ": " << (*iter).second << endl;
iter++;
}
auto iter2 = words.begin();
while (iter2 != words.end()){
wcout << (*iter2).first << ": " << (*iter2).second << endl;
iter2++;
}
}
可以給講解一下嗎?還有這是讀入一篇文章還是要手動輸入?

#22


是的,這個需要手動輸入,但是改成文件輸入也好改。現在講解可能沒時間了,我吃完泡面要去上課啦!

#23


處理漢字,為什么不用wstring?

#24


看這個,讀取文件的。
#include<iostream>
#include<fstream>
#include<map>
#include<string>
#include<vector>
using namespace std;

int main(){
setlocale(LC_CTYPE, "chs");
wifstream is("D:\\test.txt");   //文件路徑
is.imbue(locale("chs"));
wchar_t c;
vector<int> number(10);
map<wchar_t, int> punctuation;
map<wstring, int> words;
bool readword = false;
wstring word;
while ((c =is.get()) != WEOF){
if ((c >= L'a'&&c <= 'z') || (c >= L'A'&&c <= L'Z')){
readword = true;
word += c;
continue;
}
else if (c <= L'9'&&c >= L'0'){
++number[c - L'0'];
}
else if (c == L' ' || c == L'\t' || c == L'\n'){
}
else{
auto r = punctuation.find(c);
if (r != punctuation.end())
++(*r).second;
else
punctuation.insert(pair<wchar_t, int>(c, 1));
}

readword = false;
if (!word.empty()){
auto iter = words.find(word);
if (iter != words.end())
++(*iter).second;
else
words.insert(pair<wstring, int>(word, 1));
word.clear();
}
}

//Print
for (int i = 0; i < number.size(); ++i){
if (number[i]!=0)
cout << i << ": " << number[i] << endl;
}
auto iter = punctuation.begin();
while (iter != punctuation.end()){
wcout << (*iter).first << ": " << (*iter).second << endl;
iter++;
}
auto iter2 = words.begin();
while (iter2 != words.end()){
wcout << (*iter2).first << ": " << (*iter2).second << endl;
iter2++;
}
}

#25


在給一個加注釋的:
#include<iostream>
#include<fstream>
#include<map>
#include<string>
#include<vector>
using namespace std;

int main(){
setlocale(LC_CTYPE, "chs");   //設置中文
wifstream is("D:\\test.txt");    //讀取文件地址
is.imbue(locale("chs"));   //設置流讀取為中文
wchar_t c;
vector<int> number(10);   //存放數字
map<wchar_t, int> punctuation;   //存放標點符號和漢字
map<wstring, int> words;   //存放英文單詞
bool readword = false;   //是否正在讀取單詞
wstring word;
while ((c =is.get()) != WEOF){   //從文件流逐字符讀取
if ((c >= L'a'&&c <= 'z') || (c >= L'A'&&c <= L'Z')){   //判斷英文字母
readword = true;
word += c;   //將該字母添加到臨時單詞末尾
continue;
}
else if (c <= L'9'&&c >= L'0'){   //判斷數字
++number[c - L'0'];
}
else if (c == L' ' || c == L'\t' || c == L'\n'){   //判斷空白字符
}
else{   //剩余為標點和中文
auto r = punctuation.find(c);   //尋找是否已存在
if (r != punctuation.end())
++(*r).second;
else
punctuation.insert(pair<wchar_t, int>(c, 1));
}

readword = false;   //沒有使用continue的if語塊都會執行到這里
if (!word.empty()){   //如果現在存儲了單詞,把單詞加入單次列表
auto iter = words.find(word);
if (iter != words.end())
++(*iter).second;
else
words.insert(pair<wstring, int>(word, 1));
word.clear();   //清空臨時單詞
}
}

//打印所有信息
for (int i = 0; i < number.size(); ++i){   //打印數字
if (number[i]!=0)
cout << i << ": " << number[i] << endl;
}
auto iter = punctuation.begin();   //打印標點符號和漢字
while (iter != punctuation.end()){
wcout << (*iter).first << ": " << (*iter).second << endl;
iter++;
}
auto iter2 = words.begin();
while (iter2 != words.end()){   //打印單詞
wcout << (*iter2).first << ": " << (*iter2).second << endl;
iter2++;
}
}

#26


#include "stdio.h"
int count[1000];
char list[1000][20];
char word[10000];
void main()
{
    int i,j,l,k=1,a,b,c=0;
    
    for(i=0;(word[i] = getchar())!=EOF;i++) ;
    
    word[i] = 0;
    for(i=0;word[i]!=0;i++)
    {
     if((word[i]>='a'&&word[i]<='z')&&k==1)
     {
     k=0;
     j=i;
     l=i;
    
     for(a=0;a<c;a++)
     {
     for(b=0;word[l] == list[a][b] && word[l]!=' ';l++,b++) 
     ;
     if(list[a][b] == ' ') 
     {   
     count[a]++;
     goto biaoji;
     }
     }
    
     for(b=0;word[j]!=' ';j++,b++)
     {
     list[c][b] = word[j];
     }
     list[c][b] = ' ';
     c++;
    
    
     }
     biaoji: 
     if(word[i] == ' ')
     k=1;
    }
    for( i = 0;i < c ;i++)
    {
     for(b=0; list[i][b]!=' ';b++)
     printf("%c",list[i][b]);
    
     printf("::%d\n",++count[i]);
    }
}

#27


樓主,坦白交代我是來蹭分的。。。大神光芒照我身

#28


引用 25 樓 Falleyes 的回復:
在給一個加注釋的:
#include<iostream>
#include<fstream>
#include<map>
#include<string>
#include<vector>
using namespace std;

int main(){
setlocale(LC_CTYPE, "chs");   //設置中文
wifstream is("D:\\test.txt");    //讀取文件地址
is.imbue(locale("chs"));   //設置流讀取為中文
wchar_t c;
vector<int> number(10);   //存放數字
map<wchar_t, int> punctuation;   //存放標點符號和漢字
map<wstring, int> words;   //存放英文單詞
bool readword = false;   //是否正在讀取單詞
wstring word;
while ((c =is.get()) != WEOF){   //從文件流逐字符讀取
if ((c >= L'a'&&c <= 'z') || (c >= L'A'&&c <= L'Z')){   //判斷英文字母
readword = true;
word += c;   //將該字母添加到臨時單詞末尾
continue;
}
else if (c <= L'9'&&c >= L'0'){   //判斷數字
++number[c - L'0'];
}
else if (c == L' ' || c == L'\t' || c == L'\n'){   //判斷空白字符
}
else{   //剩余為標點和中文
auto r = punctuation.find(c);   //尋找是否已存在
if (r != punctuation.end())
++(*r).second;
else
punctuation.insert(pair<wchar_t, int>(c, 1));
}

readword = false;   //沒有使用continue的if語塊都會執行到這里
if (!word.empty()){   //如果現在存儲了單詞,把單詞加入單次列表
auto iter = words.find(word);
if (iter != words.end())
++(*iter).second;
else
words.insert(pair<wstring, int>(word, 1));
word.clear();   //清空臨時單詞
}
}

//打印所有信息
for (int i = 0; i < number.size(); ++i){   //打印數字
if (number[i]!=0)
cout << i << ": " << number[i] << endl;
}
auto iter = punctuation.begin();   //打印標點符號和漢字
while (iter != punctuation.end()){
wcout << (*iter).first << ": " << (*iter).second << endl;
iter++;
}
auto iter2 = words.begin();
while (iter2 != words.end()){   //打印單詞
wcout << (*iter2).first << ": " << (*iter2).second << endl;
iter2++;
}
}
太感謝了,這個是用哪個版本跑的呢?

#29


25樓將日文、韓文、……都當作漢字了。
另外請樓主問問出題者:
日文、韓文中的漢字算不算漢字?
一二三四五六七八九十〇壹貳叄肆伍陸柒捌玖零億萬千百拾廿卅算漢字還是算數字?

#30


……和——算幾個標點符號?
【】★─│算漢字還是標點符號還是都不算?
1234567890算數字嗎?
……?




#31


引用 28 樓 sinat_24552577 的回復:
Quote: 引用 25 樓 Falleyes 的回復:

在給一個加注釋的:
#include<iostream>
#include<fstream>
#include<map>
#include<string>
#include<vector>
using namespace std;

int main(){
setlocale(LC_CTYPE, "chs");   //設置中文
wifstream is("D:\\test.txt");    //讀取文件地址
is.imbue(locale("chs"));   //設置流讀取為中文
wchar_t c;
vector<int> number(10);   //存放數字
map<wchar_t, int> punctuation;   //存放標點符號和漢字
map<wstring, int> words;   //存放英文單詞
bool readword = false;   //是否正在讀取單詞
wstring word;
while ((c =is.get()) != WEOF){   //從文件流逐字符讀取
if ((c >= L'a'&&c <= 'z') || (c >= L'A'&&c <= L'Z')){   //判斷英文字母
readword = true;
word += c;   //將該字母添加到臨時單詞末尾
continue;
}
else if (c <= L'9'&&c >= L'0'){   //判斷數字
++number[c - L'0'];
}
else if (c == L' ' || c == L'\t' || c == L'\n'){   //判斷空白字符
}
else{   //剩余為標點和中文
auto r = punctuation.find(c);   //尋找是否已存在
if (r != punctuation.end())
++(*r).second;
else
punctuation.insert(pair<wchar_t, int>(c, 1));
}

readword = false;   //沒有使用continue的if語塊都會執行到這里
if (!word.empty()){   //如果現在存儲了單詞,把單詞加入單次列表
auto iter = words.find(word);
if (iter != words.end())
++(*iter).second;
else
words.insert(pair<wstring, int>(word, 1));
word.clear();   //清空臨時單詞
}
}

//打印所有信息
for (int i = 0; i < number.size(); ++i){   //打印數字
if (number[i]!=0)
cout << i << ": " << number[i] << endl;
}
auto iter = punctuation.begin();   //打印標點符號和漢字
while (iter != punctuation.end()){
wcout << (*iter).first << ": " << (*iter).second << endl;
iter++;
}
auto iter2 = words.begin();
while (iter2 != words.end()){   //打印單詞
wcout << (*iter2).first << ": " << (*iter2).second << endl;
iter2++;
}
}
太感謝了,這個是用哪個版本跑的呢?
我用的VS2013

#32


引用 30 樓 zhao4zhong1 的回復:
……和——算幾個標點符號?
【】★─│算漢字還是標點符號還是都不算?
1234567890算數字嗎?
……?





這樣玩大學課程要玩壞了。另外算法課不重這些細節吧。

#33


引用 32 樓 lion_kangaxx 的回復:
Quote: 引用 30 樓 zhao4zhong1 的回復:

……和——算幾個標點符號?
【】★─│算漢字還是標點符號還是都不算?
1234567890算數字嗎?
……?





這樣玩大學課程要玩壞了。另外算法課不重這些細節吧。
我研究生,跨專業的

#34


我提出的問題都是一個工程師應該提出的。
當然,要求一個學生或者老師或者教授提出這些問題,是有點過份。

#35


引用 22 樓 Falleyes 的回復:
是的,這個需要手動輸入,但是改成文件輸入也好改。現在講解可能沒時間了,我吃完泡面要去上課啦!
怎么手動輸入啊?

#36


引用 1 樓 xihu1364 的回復:
可以使用map<string,int>

每讀取文章的一個字先去查找map中sting是否有,有的話就int +1沒有的話就insert int 為0....

讀完后,遍歷map就可以了

#37


引用 35 樓 sinat_24552577 的回復:
Quote: 引用 22 樓 Falleyes 的回復:

是的,這個需要手動輸入,但是改成文件輸入也好改。現在講解可能沒時間了,我吃完泡面要去上課啦!
怎么手動輸入啊?
就是控制台里面,手動輸入文章,你參考我25樓的程序吧。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com