C語言函數章節實戰總結: 重寫部分字符串庫函數

      網友投稿 791 2022-05-29

      封裝函數: 判斷閏年和平年。

      該函數判斷傳入的年份是否是閏年和平年,通過返回值表示結果。

      #include //函數聲明 int GetYearSate(int year); int main() { int year; printf("請輸入年份:"); scanf("%d",&year); //判斷閏年和平年 if(GetYearSate(year)) { printf("平年.\n"); } else { printf("閏年.\n"); } return 0; } /* 函數功能: 判斷平年閏年 返回值: 0表示閏年 1表示平年 */ int GetYearSate(int year) { if((year%4==0 && year%100!=0)||(year%400==0)) { return 0; } return 1; }

      封裝函數: 字符串查找(參考strstr)

      第一步查看幫助: man strstr

      #include #include //聲明函數的 char *my_strstr(char *src_str,char *find_str); int main() { char src_str[100];//"123456789" char find_str[100]; printf("請輸入字符串:"); scanf("%s",src_str); printf("請輸入查找的字符串:"); scanf("%s",find_str); //strstr() //查找到指定的字符串,會返回查找字符串在源字符串里的首地址 printf("查找的字符串結果:%s\n",strstr(src_str,find_str)); printf("查找的字符串結果:%s\n",my_strstr(src_str,find_str)); return 0; } //函數功能: 字符串查找函數 //返回值: 返回查找到的字符串地址 char *my_strstr(char *src_str,char *find_str) { int src_len; int find_len; int i,j; src_len=strlen(src_str); find_len=strlen(find_str); for(i=0;i

      封裝函數: 字符串比較(參考strcmp)

      #include #include //聲明函數的 int my_strcmp(char *s1,char *s2); int main() { char str1[100];//"123456789" char str2[100]; printf("請輸入字符串1:"); scanf("%s",str1); printf("請輸入字符串2:"); scanf("%s",str2); //int strcmp(const char *s1, const char *s2); //比較兩個字符串是否相等。通過返回值表示。 printf("比較字符串的結果:%d\n",strcmp(str1,str2)); printf("比較字符串的結果:%d\n",my_strcmp(str1,str2)); return 0; } /* 函數功能: 比較兩個字符串是否相等 返回值: 0表示相等 1表示不相等 */ int my_strcmp(char *s1,char *s2) { while(*s1!='

      #include #include //聲明函數的 int my_strcmp(char *s1,char *s2); int main() { char str1[100];//"123456789" char str2[100]; printf("請輸入字符串1:"); scanf("%s",str1); printf("請輸入字符串2:"); scanf("%s",str2); //int strcmp(const char *s1, const char *s2); //比較兩個字符串是否相等。通過返回值表示。 printf("比較字符串的結果:%d\n",strcmp(str1,str2)); printf("比較字符串的結果:%d\n",my_strcmp(str1,str2)); return 0; } /* 函數功能: 比較兩個字符串是否相等 返回值: 0表示相等 1表示不相等 */ int my_strcmp(char *s1,char *s2) { while(*s1!='\0' && *s2!='\0') { if(*s1!=*s2)break; s1++; s2++; } if(*s1=='\0'&&*s2=='\0')return 0; return 1; }

      ' && *s2!='

      #include #include //聲明函數的 int my_strcmp(char *s1,char *s2); int main() { char str1[100];//"123456789" char str2[100]; printf("請輸入字符串1:"); scanf("%s",str1); printf("請輸入字符串2:"); scanf("%s",str2); //int strcmp(const char *s1, const char *s2); //比較兩個字符串是否相等。通過返回值表示。 printf("比較字符串的結果:%d\n",strcmp(str1,str2)); printf("比較字符串的結果:%d\n",my_strcmp(str1,str2)); return 0; } /* 函數功能: 比較兩個字符串是否相等 返回值: 0表示相等 1表示不相等 */ int my_strcmp(char *s1,char *s2) { while(*s1!='\0' && *s2!='\0') { if(*s1!=*s2)break; s1++; s2++; } if(*s1=='\0'&&*s2=='\0')return 0; return 1; }

      ') { if(*s1!=*s2)break; s1++; s2++; } if(*s1=='

      #include #include //聲明函數的 int my_strcmp(char *s1,char *s2); int main() { char str1[100];//"123456789" char str2[100]; printf("請輸入字符串1:"); scanf("%s",str1); printf("請輸入字符串2:"); scanf("%s",str2); //int strcmp(const char *s1, const char *s2); //比較兩個字符串是否相等。通過返回值表示。 printf("比較字符串的結果:%d\n",strcmp(str1,str2)); printf("比較字符串的結果:%d\n",my_strcmp(str1,str2)); return 0; } /* 函數功能: 比較兩個字符串是否相等 返回值: 0表示相等 1表示不相等 */ int my_strcmp(char *s1,char *s2) { while(*s1!='\0' && *s2!='\0') { if(*s1!=*s2)break; s1++; s2++; } if(*s1=='\0'&&*s2=='\0')return 0; return 1; }

      '&&*s2=='

      #include #include //聲明函數的 int my_strcmp(char *s1,char *s2); int main() { char str1[100];//"123456789" char str2[100]; printf("請輸入字符串1:"); scanf("%s",str1); printf("請輸入字符串2:"); scanf("%s",str2); //int strcmp(const char *s1, const char *s2); //比較兩個字符串是否相等。通過返回值表示。 printf("比較字符串的結果:%d\n",strcmp(str1,str2)); printf("比較字符串的結果:%d\n",my_strcmp(str1,str2)); return 0; } /* 函數功能: 比較兩個字符串是否相等 返回值: 0表示相等 1表示不相等 */ int my_strcmp(char *s1,char *s2) { while(*s1!='\0' && *s2!='\0') { if(*s1!=*s2)break; s1++; s2++; } if(*s1=='\0'&&*s2=='\0')return 0; return 1; }

      ')return 0; return 1; }

      封裝函數: 字符串拼接(參考strcat)

      #include #include //聲明函數的 char *my_strcat(char *s1,char *s2); int main() { char str1[100];//"123456789" char str2[100]; printf("請輸入字符串1:"); scanf("%s",str1); printf("請輸入字符串2:"); scanf("%s",str2); //strcat 字符串拼接函數,拼接之后返回源字符串的首地址 // printf("拼接的結果:%s\n",strcat(str1,str2)); printf("拼接的結果:%s\n",my_strcat(str1,str2)); return 0; } //函數功能: 字符串拼接 char *my_strcat(char *s1,char *s2) { char *p=s1; //記錄源字符串的首地址 while(*s1 != '

      #include #include //聲明函數的 char *my_strcat(char *s1,char *s2); int main() { char str1[100];//"123456789" char str2[100]; printf("請輸入字符串1:"); scanf("%s",str1); printf("請輸入字符串2:"); scanf("%s",str2); //strcat 字符串拼接函數,拼接之后返回源字符串的首地址 // printf("拼接的結果:%s\n",strcat(str1,str2)); printf("拼接的結果:%s\n",my_strcat(str1,str2)); return 0; } //函數功能: 字符串拼接 char *my_strcat(char *s1,char *s2) { char *p=s1; //記錄源字符串的首地址 while(*s1 != '\0'){s1++;} //偏移到結尾 while(*s2!='\0') { *s1=*s2; s2++; s1++; } *s1='\0'; return p; }

      '){s1++;} //偏移到結尾 while(*s2!='

      #include #include //聲明函數的 char *my_strcat(char *s1,char *s2); int main() { char str1[100];//"123456789" char str2[100]; printf("請輸入字符串1:"); scanf("%s",str1); printf("請輸入字符串2:"); scanf("%s",str2); //strcat 字符串拼接函數,拼接之后返回源字符串的首地址 // printf("拼接的結果:%s\n",strcat(str1,str2)); printf("拼接的結果:%s\n",my_strcat(str1,str2)); return 0; } //函數功能: 字符串拼接 char *my_strcat(char *s1,char *s2) { char *p=s1; //記錄源字符串的首地址 while(*s1 != '\0'){s1++;} //偏移到結尾 while(*s2!='\0') { *s1=*s2; s2++; s1++; } *s1='\0'; return p; }

      ') { *s1=*s2; s2++; s1++; } *s1='

      #include #include //聲明函數的 char *my_strcat(char *s1,char *s2); int main() { char str1[100];//"123456789" char str2[100]; printf("請輸入字符串1:"); scanf("%s",str1); printf("請輸入字符串2:"); scanf("%s",str2); //strcat 字符串拼接函數,拼接之后返回源字符串的首地址 // printf("拼接的結果:%s\n",strcat(str1,str2)); printf("拼接的結果:%s\n",my_strcat(str1,str2)); return 0; } //函數功能: 字符串拼接 char *my_strcat(char *s1,char *s2) { char *p=s1; //記錄源字符串的首地址 while(*s1 != '\0'){s1++;} //偏移到結尾 while(*s2!='\0') { *s1=*s2; s2++; s1++; } *s1='\0'; return p; }

      '; return p; }

      封裝函數: 字符串轉整數(參考atoi)

      #include #include int my_atoi(char *str); int main() { char buff[100]; printf("請輸入一個整數字符串:"); scanf("%s",buff); //字符串轉整數 printf("轉換結果:%d\n",atoi(buff)); printf("轉換結果:%d\n",my_atoi(buff)); return 0; } /* 函數功能: 字符串轉整數 函數形參: 傳入待轉換的字符串(0~9) 返回值: 返回轉換的整數結果,如果轉換失敗返回0 */ //"123ABC" int my_atoi(char *str) { int data=0; while(*str!='

      #include #include int my_atoi(char *str); int main() { char buff[100]; printf("請輸入一個整數字符串:"); scanf("%s",buff); //字符串轉整數 printf("轉換結果:%d\n",atoi(buff)); printf("轉換結果:%d\n",my_atoi(buff)); return 0; } /* 函數功能: 字符串轉整數 函數形參: 傳入待轉換的字符串(0~9) 返回值: 返回轉換的整數結果,如果轉換失敗返回0 */ //"123ABC" int my_atoi(char *str) { int data=0; while(*str!='\0') { if(*str>='0' && *str<='9') { data*=10; //0 10 120 data+=*str-'0';//1 12 123 } else { break; } str++; } return data; }

      ') { if(*str>='0' && *str<='9') { data*=10; //0 10 120 data+=*str-'0';//1 12 123 } else { break; } str++; } return data; }

      封裝函數: 字符串轉浮點數(參考atof)

      “123.456789” 456789—>0.456789 #include #include #include double my_pow(double x,int y); double my_atof(char *str,int cnt); int main() { char buff[100]; printf("請輸入一個浮點數字符串:"); scanf("%s",buff); //字符串轉浮點數 printf("轉換結果:%lf\n",atof(buff)); printf("轉換結果:%lf\n",my_atof(buff,3)); return 0; } /* 函數功能: 字符串轉浮點數 函數形參: str是傳入待轉換的字符串 cnt是保留的小數點位數 返回值: 返回轉換的整數結果,如果轉換失敗返回0 */ //"123.456 123" double my_atof(char *str,int cnt) { int data=0; int cnt_f=0; double data_f=0.0; while(*str!='

      “123.456789” 456789—>0.456789 #include #include #include double my_pow(double x,int y); double my_atof(char *str,int cnt); int main() { char buff[100]; printf("請輸入一個浮點數字符串:"); scanf("%s",buff); //字符串轉浮點數 printf("轉換結果:%lf\n",atof(buff)); printf("轉換結果:%lf\n",my_atof(buff,3)); return 0; } /* 函數功能: 字符串轉浮點數 函數形參: str是傳入待轉換的字符串 cnt是保留的小數點位數 返回值: 返回轉換的整數結果,如果轉換失敗返回0 */ //"123.456 123" double my_atof(char *str,int cnt) { int data=0; int cnt_f=0; double data_f=0.0; while(*str!='\0' && *str!='.') { if(*str>='0' && *str<='9') { data_f*=10; data_f+=*str-'0'; } else { break; } str++; } str++; //跳過 "." "123.456789" while(*str!='\0' && cnt_f!=cnt) { if(*str>='0' && *str<='9') { data*=10; data+=*str-'0'; cnt_f++; //記錄小數部分數量 } else { break; } str++; } //合成浮點數 "123.456" if(cnt>cnt_f) { cnt=cnt_f; } data_f+=data*my_pow(0.1,cnt); return data_f; } //函數功能:計算x的y次方 //my_pow(2,3); double my_pow(double x,int y) { double tmp=1.0; int i; for(i=0;i' && *str!='.') { if(*str>='0' && *str<='9') { data_f*=10; data_f+=*str-'0'; } else { break; } str++; } str++; //跳過 "." "123.456789" while(*str!='

      “123.456789” 456789—>0.456789 #include #include #include double my_pow(double x,int y); double my_atof(char *str,int cnt); int main() { char buff[100]; printf("請輸入一個浮點數字符串:"); scanf("%s",buff); //字符串轉浮點數 printf("轉換結果:%lf\n",atof(buff)); printf("轉換結果:%lf\n",my_atof(buff,3)); return 0; } /* 函數功能: 字符串轉浮點數 函數形參: str是傳入待轉換的字符串 cnt是保留的小數點位數 返回值: 返回轉換的整數結果,如果轉換失敗返回0 */ //"123.456 123" double my_atof(char *str,int cnt) { int data=0; int cnt_f=0; double data_f=0.0; while(*str!='\0' && *str!='.') { if(*str>='0' && *str<='9') { data_f*=10; data_f+=*str-'0'; } else { break; } str++; } str++; //跳過 "." "123.456789" while(*str!='\0' && cnt_f!=cnt) { if(*str>='0' && *str<='9') { data*=10; data+=*str-'0'; cnt_f++; //記錄小數部分數量 } else { break; } str++; } //合成浮點數 "123.456" if(cnt>cnt_f) { cnt=cnt_f; } data_f+=data*my_pow(0.1,cnt); return data_f; } //函數功能:計算x的y次方 //my_pow(2,3); double my_pow(double x,int y) { double tmp=1.0; int i; for(i=0;i' && cnt_f!=cnt) { if(*str>='0' && *str<='9') { data*=10; data+=*str-'0'; cnt_f++; //記錄小數部分數量 } else { break; } str++; } //合成浮點數 "123.456" if(cnt>cnt_f) { cnt=cnt_f; } data_f+=data*my_pow(0.1,cnt); return data_f; } //函數功能:計算x的y次方 //my_pow(2,3); double my_pow(double x,int y) { double tmp=1.0; int i; for(i=0;i

      封裝函數: 整數轉字符串 123 “123”

      #include #include #include void int_to_str(char *str,int data); int main() { int data; char buff[100]; printf("請輸入一個整數:"); scanf("%d",&data); //整數轉字符串 int_to_str(buff,data); printf("buff=%s\n",buff); return 0; } /* 函數功能: 整數轉字符串 */ void int_to_str(char *str,int data) { char buff[100]; //存放第一次分離的數據 int i=0; int j=0; while(data) //123 { buff[i]=data%10+'0'; data=data/10; i++; } for(j=0;j'; } //函數功能:計算x的y次方 //my_pow(2,3); double my_pow(double x,int y) { double tmp=1.0; int i; for(i=0;i

      封裝函數: 浮點數轉字符串 123.456 – “123.456”

      #include #include #include int my_pow(int x,int y); void int_to_str(char *str,int data); void double_to_str(char *str,double data_f,int cnt); int main() { double data; char buff[100]; printf("請輸入一個浮點數:"); scanf("%lf",&data); double_to_str(buff,data,5); printf("buff=%s\n",buff); return 0; } /* 函數功能: 浮點數轉字符串 */ void double_to_str(char *str,double data_f,int cnt) { char buff[50]; //存放第一次分離的數據 int i=0; int j=0; int n=0; int data_i1; int data_i2; double temp_f; /*1. 分離整數部分*/ //123.3 data_i1=data_f; //123 temp_f=data_f-data_i1; data_i2=temp_f*my_pow(10,cnt); //456 /*2. 轉換整數部分*/ while(data_i1) { buff[i]=data_i1%10+'0'; data_i1=data_i1/10; i++; } /*3. 將整數部分放到數組里*/ for(j=0;j'; } //函數功能:計算x的y次方 //my_pow(2,3); int my_pow(int x,int y) { int tmp=1; int i; for(i=0;i

      封裝函數: 判斷回文字符串。該函數判斷傳入的字符串是否是回文,通過返回值表示結果。

      #include #include #include int func(char *p); int main() { char buff[100]; printf("輸入字符串:"); scanf("%s",buff); if(func(buff))printf("回文.\n"); else printf("不是回文.\n"); return 0; } //函數功能: "123" "121" int func(char *p) { int i; int len; len=strlen(p); for(i=0;i

      封裝函數: 字符串替換。將源字符串里指定的單詞替換成指定單詞。

      #include #include #include void str_func(char *str1,char *str2,char *str3); int main() { char str1[100]; char str2[100]; char str3[100]; /*1.準備數據*/ printf("輸入源字符串:"); scanf("%s",str1); printf("輸入查找的字符串:"); scanf("%s",str2); printf("輸入替換的字符串:"); scanf("%s",str3); str_func(str1,str2,str3); /*4. 完成字符串打印*/ printf("str1=%s\n",str1); return 0; } //"123A789" "" void str_func(char *str1,char *str2,char *str3) { int str1_len=0; int str2_len=0; int str3_len=0; int i,j; int cnt=0; /*2. 計算長度*/ str1_len=strlen(str1); str2_len=strlen(str2); str3_len=strlen(str3); /*3. 字符串替換*/ for(i=0;istr3_len) { cnt=str2_len-str3_len; //差值 //完成數據向前移動--覆蓋 for(j=i+str2_len-cnt;j=i+str2_len;j--) { str1[j+cnt]=str1[j]; } str1[str1_len+cnt]='\0'; } //替換 for(j=0;j'; } //總長度變長了 else if(str2_len=i+str2_len;j--) { str1[j+cnt]=str1[j]; } str1[str1_len+cnt]='

      #include #include #include void str_func(char *str1,char *str2,char *str3); int main() { char str1[100]; char str2[100]; char str3[100]; /*1.準備數據*/ printf("輸入源字符串:"); scanf("%s",str1); printf("輸入查找的字符串:"); scanf("%s",str2); printf("輸入替換的字符串:"); scanf("%s",str3); str_func(str1,str2,str3); /*4. 完成字符串打印*/ printf("str1=%s\n",str1); return 0; } //"123A789" "" void str_func(char *str1,char *str2,char *str3) { int str1_len=0; int str2_len=0; int str3_len=0; int i,j; int cnt=0; /*2. 計算長度*/ str1_len=strlen(str1); str2_len=strlen(str2); str3_len=strlen(str3); /*3. 字符串替換*/ for(i=0;istr3_len) { cnt=str2_len-str3_len; //差值 //完成數據向前移動--覆蓋 for(j=i+str2_len-cnt;j=i+str2_len;j--) { str1[j+cnt]=str1[j]; } str1[str1_len+cnt]='\0'; } //替換 for(j=0;j'; } //替換 for(j=0;j

      封裝函數: 清除二維數組的指定行。該函數功能可以通過傳入的參數,清除指定二維數組的指定一行數據為0.

      #include #include #include void clear(int (*p)[5],int a,int b); int main() { int i,j; int buff[][5]= { {1,2,3,4,5}, {11,12,13,14,15}, {21,22,23,24,25} }; printf("源數據:\n"); for(i=0;i

      封裝函數: 將字符串里所有大寫字母全部換成小寫字母。或者小寫字母全部換成大寫字母??梢酝ㄟ^形參進行區分。 該功能廣泛用在驗證碼功能上。

      #include #include #include void func(char *str,int flag); int main() { char buff[100]; printf("從鍵盤上輸入字符串:"); scanf("%s",buff); printf("源字符串:%s\n",buff); func(buff,0); printf("大寫轉換小寫:%s\n",buff); func(buff,1); printf("小寫轉大寫:%s\n",buff); return 0; } //函數功能: 大寫小寫轉換 //flag=0表示大寫轉換小寫 =1表示小寫轉大寫 void func(char *str,int flag) { int data; while(*str!='

      #include #include #include void func(char *str,int flag); int main() { char buff[100]; printf("從鍵盤上輸入字符串:"); scanf("%s",buff); printf("源字符串:%s\n",buff); func(buff,0); printf("大寫轉換小寫:%s\n",buff); func(buff,1); printf("小寫轉大寫:%s\n",buff); return 0; } //函數功能: 大寫小寫轉換 //flag=0表示大寫轉換小寫 =1表示小寫轉大寫 void func(char *str,int flag) { int data; while(*str!='\0') { if(flag) { if(*str>='a'&& *str<='z') //小寫 { *str=*str-32; } } else { if(*str>='A'&& *str<='Z') //小寫 { *str=*str+32; } } str++; } }

      ') { if(flag) { if(*str>='a'&& *str<='z') //小寫 { *str=*str-32; } } else { if(*str>='A'&& *str<='Z') //小寫 { *str=*str+32; } } str++; } }

      封裝GPS解碼函數: 該函數可以傳入GPS格式的字符串,在函數里完成所有數據解碼輸出。

      C語言函數章節實戰總結: 重寫部分字符串庫函數

      經度、緯度、衛星的數量、時間

      #include #include #include char gps_buff[]= { "$GNGGA,114955.000,2842.4158,N,11549.5439,E,1,05,3.8,54.8,M,0.0,M,,*4F" "$GNGLL,2842.4158,N,11549.5439,E,114955.000,A,A*4D" "$GPGSA,A,3,10,31,18,,,,,,,,,,5.7,3.8,4.2*37" "$BDGSA,A,3,07,10,,,,,,,,,,,5.7,3.8,4.2*2A" "$GPGSV,3,1,10,10,49,184,42,12,16,039,,14,54,341,,18,22,165,23*7B" "$GPGSV,3,2,10,22,11,318,,25,51,055,,26,24,205,,29,13,110,*7C" "$GPGSV,3,3,10,31,50,287,36,32,66,018,*7F" "$BDGSV,1,1,04,03,,,07,05,,,29,07,79,246,33,10,52,232,19*62" "$GNRMC,114955.000,A,2842.4158,N,11549.5439,E,0.00,44.25,061117,,,A*4D" "$GNVTG,44.25,T,,M,0.00,N,0.00,K,A*14" "$GNZDA,114955.000,06,11,2017,00,00*47" "$GPTXT,01,01,01,ANTENNA OK*35" }; /* 函數功能: 根據逗號位置提取數據 函數參數: char *gps_src GPS源字符串地址 char *buff 存放提取的數據 char *find_head 查找的GPS數據頭 int cnt 逗號的偏移量 返回值:提取的字節數。 */ int GPS_GetData(char *gps_src,char *find_head,char *buff,int cnt) { char *p; int number=0; //提取的數量 int a=0; p=strstr(gps_src,find_head); if(p!=NULL) { //查找逗號的位置 while(*p!='\0') { if(*p==',')a++; //記錄逗號的數量 if(a==cnt)break; //逗號找成功了 p++; } p++; //跨過當前逗號 //提取數據 while(*p!='\0') { if(*p==',')break; //遇到逗號停止提取數據 buff[number]=*p; p++; number++; } buff[number]='\0'; } return number; } int main() { char buff[100]; GPS_GetData(gps_buff,"$GNGGA",buff,2); printf("緯度:%s\n",buff); GPS_GetData(gps_buff,"$GNGGA",buff,4); printf("經度:%s\n",buff); return 0; }

      封裝函數: 將十進制整數轉為16進制輸出(字符串形式)。

      #include //定義16進制的數據,方便輸出 char hex_val[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; int main() { int number=0; int a[100]; int i=0; int data; /*1. 輸入十進制的整數*/ printf("輸入一個整數:"); scanf("%d",&number); /*2. 16進制最大值是15-0xFF,取余進行分離*/ while(number>0) { data=number%16; a[i]=data; number=number/16; i++; } printf("輸入整數的十六進制數: 0x"); /*3. 輸出對應的16進制格式*/ for(i=i-1;i>=0;i--) { printf("%c",hex_val[a[i]]); } printf("\n"); }

      C 語言

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【數字IC驗證快速入門】4、熟悉數字IC驗證中常用的Linux基本操作
      下一篇:12.20 Linux循環執行定時任務(crontab命令)
      相關文章
      91精品国产亚洲爽啪在线影院| 亚洲AV无码一区二区二三区软件| 久久久婷婷五月亚洲97号色| 在线精品亚洲一区二区小说| 亚洲精品国产精品乱码不卡| 久久亚洲中文字幕无码| 精品久久久久久久久亚洲偷窥女厕| 亚洲色欲啪啪久久WWW综合网| 在线a亚洲老鸭窝天堂av高清| 亚洲人成综合网站7777香蕉| 国产精品亚洲片在线va| 亚洲人成7777| 亚洲熟妇无码av另类vr影视| 亚洲中文字幕无码av| 亚洲欧美日韩综合俺去了| 亚洲精品久久无码| MM1313亚洲精品无码久久| 国产亚洲精品成人久久网站| 国产AV日韩A∨亚洲AV电影| 亚洲av中文无码| 中文字幕精品亚洲无线码一区应用| 自拍偷自拍亚洲精品第1页 | 亚洲a级在线观看| 亚洲影视一区二区| ASS亚洲熟妇毛茸茸PICS| 亚洲欧美成人av在线观看| WWW国产亚洲精品久久麻豆| 亚洲成a人片在线观看久| 国产亚洲AV夜间福利香蕉149| 亚洲人成人网站色www| 亚洲AV无码一区东京热久久| 亚洲国产精品lv| 亚洲国产日韩女人aaaaaa毛片在线 | 亚洲AV无码AV日韩AV网站| 久久精品国产亚洲av天美18 | 亚洲?v无码国产在丝袜线观看| 亚洲精品无码久久不卡| 亚洲综合日韩久久成人AV| 亚洲国产精品热久久| 亚洲国产精品一区二区久| 97久久国产亚洲精品超碰热|