日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

c语言code用法_visual code c语言

發布時間:2023/12/15 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 c语言code用法_visual code c语言 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,又見面了,我是你們的朋友風君子。如果您正在找激活碼,請點擊查看最新教程,關注關注公眾號 “全棧程序員社區” 獲取激活教程,可能之前舊版本教程已經失效.最新Idea2022.1教程親測有效,一鍵激活。

Jetbrains全系列IDE穩定放心使用

此文章出處:http://www.cppblog.com/izualzhy/archive/2012/07/09/182456.html

先看個例子:

漢字 一 的UTF-8編碼為0xE4 0xb8 0x 80

我們在google里搜索一下“一”,地址欄顯示為:

可以看到url的字符串里有一個%E4%B8%80

這就是encode之后的值。因此,encode的處理過程也很明顯了。

特別是傳中文參數時,如果沒有encode,很容易出錯。

至于為什么要這么傳,就不知道了,今天,現來看下C語言如何實現url encode函數.

首先是urlencode的編碼規則,可以看這里,搜到一篇文章沒有仔細研究,可能有不全的地方:

/*

* =====================================================================================

* Filename: url_decode.cpp

* Description: url decode

*

* Created: 07/06/2012 07:35:14 PM

* Author: zhy (), izualzhy@163.com

* =====================================================================================

*/#include#include#defineNON_NUM ‘0’inthex2num(charc)

{if(c>=’0’&&c<=’9′)returnc -‘0′;if(c>=’a’&&c<=’z’)returnc -‘a’+10;//這里+10的原因是:比如16進制的a值為10if(c>=’A’&&c<=’Z’)returnc -‘A’+10;printf(“unexpected char: %c”,c);returnNON_NUM;

}/**

* @brief URLDecode 對字符串URL解碼,編碼的逆過程

*

* @param str 原字符串

* @param strSize 原字符串大小(不包括最后的\0)

* @param result 結果字符串緩存區

* @param resultSize 結果地址的緩沖區大小(包括最后的\0)

*

* @return: >0 result 里實際有效的字符串長度

* 0 解碼失敗

*/intURLDecode(const char*str,const intstrSize,char*result,const intresultSize)

{charch,ch1,ch2;inti;intj =0;//record result indexif((str==NULL) || (result==NULL) || (strSize<=0) || (resultSize<=0)) {return0;

}for(i=0; (i

}else{break;

}default:result[j++] =ch;break;

}

}result[j] =0;returnj;

}intmain(intargc,char*argv[])

{char*src =argv[1];charobj[100] = {0};unsigned intlen =strlen(src);intresultSize =URLDecode(src,len,obj,100);printf(“result: %d, %s\n”,resultSize,obj);return0;

}

編碼:

/*

* =====================================================================================

* Filename: url_encode.cpp

* Description: url encode

*

* Created: 07/04/2012 08:32:24 PM

*

* Author: zhy (), izualzhy@163.com

* =====================================================================================

*/#include#include/**

* @brief URLEncode 對字符串URL編碼

*

* @param str 原字符串

* @param strSize 原字符串長度(不包括最后的\0)

* @param result 結果緩沖區的地址

* @param resultSize 結果緩沖區的大小(包括最后的\0)

*

* @return: >0:resultstring 里實際有效的長度

* 0: 解碼失敗.

*/intURLEncode(const char*str,const intstrSize,char*result,const intresultSize)

{inti;intj =0;//for result indexcharch;if((str==NULL) || (result==NULL) || (strSize<=0) || (resultSize<=0)) {return0;

}for(i=0; (i=’A’) && (ch

((ch>=’a’) && (ch

((ch>=’0′) && (ch

}else if(ch ==’ ‘) {result[j++] =’+’;

}else if(ch ==’.’||ch ==’-‘||ch ==’_’||ch ==’*’) {result[j++] =ch;

}else{if(j+3

}else{return0;

}

}

}result[j] =’\0′;returnj;

}intmain(intargc,char*argv[])

{char*src =argv[1];unsigned intsrclength =strlen(src);printf(“src length: %d\n”,strlen(src));charobj[100] = {0};URLEncode(src,srclength,obj,100);printf(“obj: %s\n”,obj);printf(“obj: %d\n”,strlen(obj));return0;

}

輸出:

y@y-VirtualBox:/mnt/Documents/Training$ ./url_encode 一^abc_二

src length: 11

obj: %E4%B8%80%5Eabc_%E4%BA%8C

obj: 25

y@y-VirtualBox:/mnt/Documents/Training$ ./url_decode %E4%B8%80%5Eabc_%E4%BA%8C

result: 11, 一^abc_二

使用google搜索下:

注:

1.AA –> “%AA”,使用sprintf。

2.”%AA” –> AA, 使用位移。

參考:

總結

以上是生活随笔為你收集整理的c语言code用法_visual code c语言的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。